Everything you always wanted to know about Certificate Transparency
This is a modal window.
The media could not be loaded, either because the server or network failed or because the format is not supported.
Formal Metadata
Title |
| |
Subtitle |
| |
Title of Series | ||
Number of Parts | 147 | |
Author | ||
License | CC Attribution 4.0 International: You are free to use, adapt and copy, distribute and transmit the work or content in adapted or unchanged form for any legal purpose as long as the work is attributed to the author in the manner specified by the author or licensor. | |
Identifiers | 10.5446/43876 (DOI) | |
Publisher | ||
Release Date | ||
Language |
Content Metadata
Subject Area | ||
Genre | ||
Abstract |
| |
Keywords |
33c363 / 147
1
3
4
6
7
9
11
13
15
16
17
19
22
23
28
31
32
33
37
39
40
41
43
44
45
46
48
49
51
53
54
55
57
58
62
64
65
66
68
71
72
73
74
77
78
82
84
85
90
93
96
98
100
102
103
104
105
108
110
111
112
113
115
118
119
120
121
122
123
125
126
127
131
133
134
137
139
140
141
143
146
147
00:00
Public key certificateInformation securityPublic key certificateSlide ruleTwitterType theoryWordComputer animationLecture/ConferenceXMLUMLMeeting/Interview
00:54
Computer networkComputer forensicsInformation securityInformation privacyState of matterTwitterPublic key certificateHand fanInternetworkingState of matterContent (media)Information privacyGoogolTelebankingCASE <Informatik>Information securityComputer animation
01:51
FacebookEncryptionContent (media)Arithmetic meanPublic key certificatePresentation of a groupGoodness of fitAuthorizationComputer animationLecture/Conference
02:43
Hacker (term)10 (number)Public key certificateGoogolPublic key certificateAuthorizationHacker (term)Goodness of fitMereologyEncryptionWindowDomain nameGoogolPhysical systemComa BerenicesInternetworkingShift operatorWebsiteWeb 2.0Sign (mathematics)Computer animation
03:46
Virtuelles privates NetzwerkProjective planeIntercept theoremTelecommunicationPublic key certificateSign (mathematics)WebsiteRegular graphIncidence algebraInformation securityHacker (term)Frame problemVery-high-bit-rate digital subscriber lineClient (computing)EmailWhiteboardMultiplication signWeb 2.0Coma BerenicesVideoconferencingState of matterIP addressWeb browserIn-System-ProgrammierungGateway (telecommunications)Lecture/ConferenceComputer animation
05:06
Military operationFirst-order logic10 (number)Frame problemMultiplication signPublic key certificateWeb browser40 (number)Client (computing)TelecommunicationAuthorizationInternetworkingVulnerability (computing)Information securityPhysical systemConnected spaceComputer animation
06:45
Patch (Unix)Antivirus softwarePasswordTime domainPublic key certificateTraffic reportingSoftwarePasswordServer (computing)Information securityInternetworkingAntivirus softwarePatch (Unix)Domain nameVirtual machineSystem administratorIdentifiabilityIncidence algebraWindowComputer animation
07:55
Conic sectionPublic key certificateLocal ringIdentity managementAuthorizationRoutingPublic key certificateInformation securityBusiness modelData storage deviceEntire functionWaveSoftwareBuildingConnected spaceOperator (mathematics)Transport Layer SecurityWeb browserInheritance (object-oriented programming)Domain nameMetropolitan area networkNormal (geometry)Operating systemComputer animation
10:03
Lenovo GroupLaptopPublic key certificateMetropolitan area networkPublic-key cryptographyControl flowOpen setInterface (computing)Web browserAutomatic differentiationKey (cryptography)Sign (mathematics)AdditionConnected spaceInjektivitätGraphics tabletWordDot productPhysical systemSoftware testingIncidence algebraQuicksortOverlay-NetzComa BerenicesEmailLecture/Conference
11:42
Conic sectionPublic key certificateLocal ringPlane (geometry)GoogolGoogolSoftware testingIncidence algebraPublic key certificateInstallation artPlanningConnected spaceSatelliteMusical ensembleComputer animation
12:35
Plane (geometry)PlanningCASE <Informatik>ThumbnailPublic key certificateGoogolLecture/Conference
13:26
Transport Layer SecurityPublic key certificateRoutingPublic key certificateLimit (category theory)Data storage deviceFacebookDomain nameArithmetic meanRegular graphClient (computing)AuthorizationGoogolSingle-precision floating-point formatDesign by contractComputer animationComa BerenicesComputer animation
15:17
ImplementationImplementationPublic key certificateData storage devicePhysical systemInformation securitySoftwareValidity (statistics)Entropie <Informationstheorie>Operating systemKey (cryptography)Public-key cryptographyDifferent (Kate Ryan album)Poisson-KlammerTime zonePresentation of a groupWeb browserNatural numberEmailInheritance (object-oriented programming)Gene clusterLecture/ConferenceXML
17:01
ImplementationSuite (music)EncryptionSystem administratorInternetworkingEmailAuthenticationService (economics)Suite (music)Vulnerability (computing)EncryptionKey (cryptography)Perfect groupPublic key certificateDifferent (Kate Ryan album)Presentation of a groupSoftware developerRevision controlEntire functionAuthorizationInformation securityWebsitePlastikkarteMereologyPoint (geometry)Computer animationComputer animation
18:59
State of matterSpring (hydrology)Proxy serverMereologyThermal conductivityPublic key certificateMetropolitan area networkCodeComputer animationComputer animationLecture/Conference
19:46
Computer iconPublic key certificateAuthorizationGoogolState of matterService (economics)IdentifiabilityPublic-key cryptographyWindowForm (programming)Moment (mathematics)Right angleMereologyKey (cryptography)QuicksortProjective planeDecision theoryComa BerenicesWeightComputer animationComputer animation
22:15
GoogolSoftwareControl flowClient (computing)BlogPublic key certificateGoogolData storage devicePower (physics)Web browserInternetworkingClient (computing)Public key certificateTwitterYouTubeLoginStandard deviationService (economics)Source codePhysical systemException handlingSinc functionRegulator geneGraphical user interfaceLevel (video gaming)AuthorizationVulnerability (computing)Information securityMereologyBackdoor (computing)Content (media)MathematicsGroup actionFamilyForcing (mathematics)Coma BerenicesShared memoryWordEmailDevice driverCycle (graph theory)Lecture/ConferenceComputer animation
26:34
Operator (mathematics)Public key certificateAuthorizationWeb browserMultiplication signTerm (mathematics)Optical disc driveForm (programming)Semantics (computer science)Position operatorDomain namePower (physics)Lecture/ConferenceComputer animation
27:52
Operator (mathematics)Computer wormPublic key certificateGraphical user interfaceClient (computing)Web browserBlogPosition operatorPower (physics)Right angleFront and back endsINTEGRALComputer animationLecture/Conference
28:42
Data integrityQuery languageBlogTimestampProof theoryWeb browserSoftwareServer (computing)Public key certificateSign (mathematics)TimestampPoint (geometry)LoginServer (computing)Hash functionInstallation artNetwork topologyEncryptionIn-System-Programmierung2 (number)Goodness of fitDomain nameAuthorizationService (economics)Web browserQuery languageCASE <Informatik>BlogSoftwareMultiplication signRight angleGoogolComputer animation
31:41
Transport Layer SecurityDependent and independent variablesPublic key certificatePhysical systemExtension (kinesiology)Server (computing)Public key certificateAuthorizationWebsiteGraph (mathematics)Client (computing)Directory serviceEncryptionSign (mathematics)Multiplication signInstallation artLoginXMLProgram flowchart
32:33
Computer wormPublic key certificateTimestampExclusive orSign (mathematics)Client (computing)Extension (kinesiology)Server (computing)Electric currentTransport Layer SecurityInformationNetwork topologyHash functionBlogClient (computing)Public key certificateTimestampLoginNetwork topologyData structureINTEGRALBlock (periodic table)Operator (mathematics)Multiplication signRule of inferenceHash functionTable (information)Electronic signaturePhysical lawBinary treeSign (mathematics)Server (computing)AuthorizationMultiplicationCASE <Informatik>Inclusion mapWebsiteDivision (mathematics)SpacetimeRootRight angleComputer animation
35:53
Network topologyHash functionTerm (mathematics)BlogMaxima and minimaElement (mathematics)Proof theoryInterior (topology)Vertex (graph theory)Formal verificationElement (mathematics)Multiplication signHash functionPublic key certificateMaxima and minimaLoginOperator (mathematics)Web browserNetwork topologyAuthorizationGoogolRootSoftware testingRoutingComa BerenicesSpacetimeMathematicsCollisionComputer animation
38:02
Proof theoryConsistencyNetwork topologyCheat <Computerspiel>Vertex (graph theory)Formal verificationElectronic signaturePublic key certificatePublic key certificateOperator (mathematics)Figurate numberProjective planeNetwork topologyWebsiteRoutingDisk read-and-write headMultiplication signDiagram
39:05
Network topologyPublic key certificateHash functionRootRoutingConsistencyProof theoryComputer animation
39:52
Proof theoryNetwork topologyPublic key certificateInterior (topology)Hash functionPublic key certificateProof theoryLoginConsistencyOperator (mathematics)MultilaterationPoint (geometry)Multiplication signComputer animation
40:39
BlogNetwork topologyHash functionPublic key certificateRootOperator (mathematics)Multiplication signWordValidity (statistics)Network topologyLatent heatFluid staticsPoint (geometry)LoginComputer animationLecture/Conference
41:46
BlogNetwork topologyInformationNetwork topologyRight angleLevel (video gaming)Public key certificateProof theoryFreezingForm (programming)Client (computing)LoginOperator (mathematics)GoogolInformationState of matterArithmetic meanPhysical lawWave packetFreewareComputer animation
43:23
BlogLoginGoogolCheat <Computerspiel>EncryptionDifferent (Kate Ryan album)Block (periodic table)Uniform boundedness principleBoss CorporationGoogolEmailCuboidElectronic mailing listPublic key certificateEncryptionCodeLoginComputer animation
44:16
Web browserGoogolBlogLoginCheat <Computerspiel>EncryptionPublic key certificateDomain nameInformation privacyAuthorizationPublic key certificateGoogolMultiplication sign10 (number)Coma BerenicesWeb 2.0ExistenceValidity (statistics)Green's functionWeb browserSet (mathematics)Interface (computing)Process (computing)Traffic reportingSoftware testingQuery languageRight angleEncryptionExtension (kinesiology)LoginInformation privacyAuditory maskingDomain nameSemantics (computer science)Computer fileUsabilityBlock (periodic table)2 (number)Lecture/ConferenceComputer animation
46:53
Entire functionRootChainMechanism designControl flowBlogUniform resource locatorTimestampElectronic signatureChainDomain nameComputer fileRoutingRing (mathematics)BlogPublic key certificateRootUniform resource locatorNumberTimestampElectronic signatureServer (computing)GoogolLecture/ConferenceComputer animation
48:06
TimestampProof theoryUniform resource locatorPublic key certificateHash functionElectronic signatureNetwork topologyLoginState of matterConsistencyPhysical lawRight angleUniform resource locatorComa BerenicesMultiplication signOperator (mathematics)Web 2.0TouchscreenXMLComputer animation
49:09
Graphical user interfacePublic key certificateTimestampExtension (kinesiology)AlgorithmIdentity managementFacebookDomain nameEmailChinese remainder theoremGoogolLoginPublic key certificateTouchscreenSearch engine (computing)Optical disc driveFacebookDomain nameDomain nameMathematicsComa BerenicesXMLComputer animationLecture/Conference
50:05
FacebookDomain nameEmailElectronic signatureMessage passingPublic key certificateVorwärtsfehlerkorrekturTime domainSanitary sewerBlogSoftwareData managementChainData structureFacebookEmailPublic key certificateLeakTouchscreenData structureWebsiteLoginNetwork topologyAuthorizationKey (cryptography)Formal verificationSoftwareData managementBlogPrototypeComputer animation
51:27
Wave packetHash functionNetwork topologyBlock (periodic table)Line (geometry)Lecture/ConferenceJSONXML
52:23
Client (computing)SoftwareLipschitz-StetigkeitExtension (kinesiology)Field (computer science)MereologyComputer animationLecture/ConferenceJSONXML
53:12
Extension (kinesiology)Client (computing)Open setSpacetimeLoginNetwork topologyChainRoutingRegular graphPublic key certificateHard disk driveTelecommunicationRootLecture/ConferenceJSONXML
54:02
Hard disk drivePublic key certificateExtension (kinesiology)Multiplication signFrame problemBitServer (computing)CASE <Informatik>GoogolJSONXMLComputer animationLecture/Conference
55:12
BitReading (process)Public key certificateWeb browserAuthorizationGraphical user interfaceMultiplication signInternetworkingDirection (geometry)Order (biology)Data storage deviceHTTP cookieConnected spaceQuicksortJSONXMLLecture/Conference
57:20
Mixed realityExtension (kinesiology)Network topologyPublic key certificateCentralizer and normalizerAuthorizationTable (information)Web browserSource codeContext awarenessOpen setImplementationJSONXMLLecture/Conference
58:32
Independence (probability theory)MereologyLatent heatCASE <Informatik>Public key certificateMultiplication signRoundness (object)LoginNetwork topologyPoint (geometry)Different (Kate Ryan album)JSONXMLLecture/Conference
59:39
MedianHypermediaCartesian closed categoryIntegrated development environmentJSONXML
Transcript: English(auto-generated)
00:14
I'm very excited to be here. I guess you are, too. And we will get started with our first
00:21
talker for the day. He is a security researcher at SBA research and he's also a member of CCC Vienna. The talk we'll be hearing today is everything you always wanted to know about certificate transparency. And with that, I will pass on the stage. Please give a warm welcome to Martin Schmidiker.
00:49
Thank you very much for this kind words and this very nice introduction. As I already said, I'm a member of CCC Vienna. I'm also on Twitter. So, if you have a comment afterwards or want to ping me, if you find the typo in the slides or whatever,
01:03
just ping me on Twitter. So, what is this talk about? What are we going to talk about? Certificate transparency is kind of a new thing in the TLS ecosystem. So, not many people are familiar that it is here. So, I will present the overview, what is CT and what it does. And also, we'll peek under the hood and see what it actually does,
01:26
how it works and how you can play with it. So, one of the things I have to say about myself, I'm a keen fan of Internet memes. So, even though these are hilarious pictures, personally, I find hilarious pictures that I put online.
01:42
Keep in mind that HTTPS is a serious topic. So, whether you do net banking, you're Googling or whatever you do online, HTTPS is there to protect your privacy and to protect your security. And in some states, and this has been shown by history, this is not a case. So, there are nationwide introspecting devices which break open the TLS encryption and look at the content
02:07
and people will get a visit from secret police or anything and they will knock on their door and arrest them, just like this week happened in Turkey where people got arrested for posting things on Facebook.
02:22
So, even though there are some funny pictures in there, keep in mind that this is just a means to an end for my presentation. I personally find HTTPS is a very important topic. I hope I can convince you to and CT in particular is fascinating.
02:42
So, why is there something like certificate transparency? Like the name says it all. If you are a certification authority, you want to make public the certificates you sell or you issue. And with many good stories and with many good tools, it all started with a hack.
03:01
Back in 2011, there was this Dutch certification authority called Diginotar and they got pwned. They got really badly fisted. They lost everything. They lost all their crown jewels. And as part of this hack, there were 500 something fraudulent certificates issued.
03:22
And not just any certificates, not just like Let's Encrypt where you can get a free certificate and then use it for your internal systems or for your website or whatever. No really, really high value domains and high value certificates like google.com, very privacy invasive. If you can read what people are googling or what they are sending in their emails,
03:46
windowsupdate.com, which is like the back door to some of the windows world, motila.com. The attacker could manipulate the Firefox download, sign it with the certificate
04:02
and ship it over a securely seeming website to a project and so forth. So, this was back in 2011 and this was not just a small incident. It's what just hasn't been a small CA, but it was a regular CA with regular business.
04:21
What's more on this hack is that these certificates have then been used to intercept communication of clients, people browsing the web, reading their email and the company which investigated the breach afterwards found out that at least 300,000 IP addresses were connecting to google.com
04:41
and were seeing this fraudulent certificate. 99% of them which were from Iran. So, it was kind of a nation state attack against clients of either ISP based or border gateway based where people were browsing, were thinking they were browsing secured by HTTPS, but they were actually not.
05:06
This is a wonderful frame from the video. So, the guys from FoxIT which investigated this breach, they used the OCSP request. So, every time you get a certificate, your browser has to somehow figure out whether or not
05:22
this certificate is still valid. If it has been revoked, it would be nice to not use it anymore. And one of the approaches which is used is so-called OCSP. So, the client asks the certificate authority, hey, is this still valid?
05:42
And this has been locked. So, each of these requests is one of the clients seeing this certificate, this fraudulent certificate and asking Diginotar, hey, is this certificate still valid? And as you can see, most of the connections, it's actually a movie,
06:01
so you can see the lights flickering and popping up and down as people go to sleep and wake up again. And most of the people were from Iran. So, how did Diginotar got hacked? They got really, really badly hacked because they had vulnerabilities everywhere.
06:20
They had a system running which was incomprehensibly insecure for a certification authority. So, people think that if you run a certification authority, you build the foundation for secure communication online. You are the one securing internet communication. And if you run such an entity, people think you know security.
06:44
Actually, Diginotar did not. So, they had unpatched software which was phasing the internet, might happen. They didn't have antivirus on the machines that issued this certificate. They didn't have a strong password for their admin accounts, so like password or admin.
07:03
Actually, you can read the report online and the recommendations from ENISA, from the European security body. They listed all the things that have been found and identified. Also, all the certification issuing servers were in one Windows domain.
07:21
And also, what kind of bad from Diginotar, they kept the incident secret. Of course, they did not want to spread out, to spoo into the internet. Hey, we got hacked and we have had bad security. They kept this incident hidden for more than two months. And after two months, when it got public and when the internet found out,
07:45
then actually something really, really bad happened. They found out and Diginotar then went bankrupt. That's a sad ending of the story. But this is not one of the problems that certification authorities face.
08:04
So, if you run a certification authority, you issue certificates based on the identity of your customers. So, you can create sub route CAs, so you can say, Martin, he looks like a nice guy. He looks like he knows security. Let's make him a CA, make him verify identities.
08:25
Probably not a good idea, but this is what the business model of HTTPS and certification authority is. They issue certificates and they grant the permission to issue certificates as well.
08:41
And the entire goal of these companies is to get into the trust stores. So, every browser, every operating system, every thing that connects over TLS has something like a called Trust Store, where it stores the entities which are entitled to issue certificates.
09:01
And the problem is, those CAs are not strictly audited. They have their requirements that they have fulfilled. They have to show that they have some kind of security. But afterwards, once they are certified and once they are in the trust stores, there is not such a strong incentive to audit them,
09:21
because they are already in trust stores and they had their audits and so forth. And this can lead to many problems. Another CA trust wave in 2011, it issued a sub-CA certificate. Anyone with a sub-CA certificate can issue a TLS certificate for any domain.
09:45
And they used it for traffic introspection. So, they were selling to a company which was building appliances, which can break open the network connections for banks, companies or entire ISPs, so that they can look into the traffic of its users.
10:05
Also, there was Lenovo Superfish, wonderful idea. Superfish was a local man in the middle CA, and the goal of the Superfish CA was to break open HTTPS traffic, so that they can inject ads.
10:20
So, even though you are using Gmail and you have this nice, slick interface without obvious ads, Superfish would break open this connection, would be trusted by the browser and would have huge overlay ads. Lenovo stopped cooperating with Superfish.
10:43
I think this was pre-installed on Lenovo notebooks. So, they had the local CA installed on the system, so they could inspect the traffic and show ads to users. What's even more interesting is that all these CAs had the same key
11:00
and the private key was in RAM. So, anybody could extract the private key of this CA, use it to sign certificates for anything, and have an additional layer of HTTPS injection, where it could not only show ads but also read the emails
11:22
or do whatever you want. Very bad. They're not doing it allegedly anymore. Then there was in China, the CNN-IC. They issued a sub-CA for introspection companies. Again, the company wanted to sell appliances where they could break open HTTPS connections
11:42
and look into the traffic of the users. And there was another incident just this year. Simon Tak was issuing test certificates to a company or whatever. Among them, Google.com, Opera.com, so things you probably would not like to test, got caught.
12:03
And the nice thing about this incident is they already had certificate transparency installed. And we will come back to this incident in a minute. So, traffic introspection is a valid thing. So, if you have a fleet of planes and they are connected via expensive satellite connections
12:23
and you really pay a lot for bandwidth, you would like to block, for example, Netflix or anything which causes a lot of traffic. One of the approaches, which was taken by Gogo, they had a traffic introspection device in their planes
12:40
and they issued not trusted certificates to inspect the traffic. Bad for them. Adrian Porterfeld, who works for Google, noticed this and Gogo is not doing this anymore. And even though traffic introspection sounds like a really bad thing,
13:03
I can think of use cases where this is legit. If you run a company, if you run a bank and you want to prevent people from leaking data, this can be okay, but it has to be transparent. People have to know that this is happening, that they are inspecting everything and still won't prevent people from carrying out
13:22
the USB thumb drive with all the data on it. So, this is the big picture why we need certificate transparency. We would like to see which certificates have been issued by a specific CA. Some minor issues, not really minor,
13:41
that additionally come to place that TLS has its issues, nonetheless whether these certificates are issued or not. One of them is certificate revocation is tricky. So, it's not as easy as just saying this certificate is not valid anymore. Once a certificate is issued,
14:01
it is valid until the date shown in the certificate, which can be three years. So, happens to be if on the first day of using this certificate, people notice, we should revoke it. Clients that don't get this update will be able to use this certificate for two and more years, so forth.
14:24
Also, another limitation is that all CAs can issue certificates for all websites. So, any of those 1,800 CAs and sub-CAs, which were in trust stores in 2013, they can all issue a certificate for google.com or facebook.com.
14:42
This is not prevented by any means, but social means and contracts, which states that they have to check the legitimacy of the request. This was published in a paper in 2013. So, there were more than 1,800 CAs,
15:01
which can sign certificates for any domain in regular user devices. Another paper in 2014 found out that one third of them, one third of those 1,800 certification authorities never issued a single HTTPS certificate. This makes you wonder why are they then in the trust store
15:22
and so forth. You can claim a certain percentage of them. They are used for issuing private certificates, so within networks or whatever. Still, one third of them never issued a publicly obtainable HTTPS certificate.
15:42
Then, of course, there are the implementation issues. TLS has a long history of implementation flaws, not just cryptographic. There's Logjam, Freak, Poodle, whatever. They are a completely separate issue, but the implementation issues are troubling the device security
16:02
on a constant pace. A famous example is GoToFail from iOS, where they had an additional GoToFail missing bracket and the certificate validity wasn't checked. Also, we have a lot of embedded devices. Once they are powered up, they used to generate their private key
16:21
and they have no access to good entropy. Entropy on embedded devices is surprisingly hard, so a lot of them generate the same keys. As already mentioned, we have different trust stores per browser, per operating system. Everyone has a different trust base.
16:40
Of course, every CA tries to get access into all of the trust stores, get shipped with system updates to be trusted, and we have a diversity which is not natural. It could be much easier if people would have the same trust base on all their devices.
17:00
And there are plenty of deployment issues. SSL v2, everybody thinks it's that, but apparently it's not. Sebastian Schinzel will give a splendid presentation two hours from now about the Drowned Attack, and the Drowned Attack uses SSL v2 weaknesses in email transport, simply because it's activated and it uses the same key.
17:22
You can attack top-notch TLS 1.2 encryption because this is still here. There's the whole shmafu of the SHA-1 certificates, so certification authorities are not supposed to issue any SHA-1 certificates anymore. Some do, some get caught
17:40
because they backdated their certificates and so forth. It's a mess. Then there are cipher suits, so there are more than 500 cipher suits available for the different version of TLS. Every admin would like to be secure as possible, but which should he choose? As soon as there's money involved,
18:01
like Amazon, they need to be compatible with Internet Explorer 6 and so forth. It's really a mess. Yes, and of course, email STAR-TLS. Email never had the design to incorporate security and authentication.
18:21
So, as always, they just popped it on top, and this is STAR-TLS. Problem with STAR-TLS is it can be suppressed and people will fall back to plain text if they cannot reach the service with STAR-TLS. Perfect. Forward secrecy and so forth. Deployment is another topic which can be talked about.
18:43
And there's this troublesome development that the CAs, they get bought and they get sold constantly. So, just this year, Symantec bought the company Bluecode. Symantec is one of the larger CAs. They run the entire...
19:00
Not the entire, but they run large parts of the certifications that are observable. Bluecode got popular in the Arab Spring because they found Bluecode proxies which are capable of using man-in-the-middle attacks to conduct traffic introspection have been used at an ISP,
19:20
I think in Syria or Egypt. They found them and they have been deployed nationwide. So, if you think about it, that Symantec, one of the larger CAs, is buying a Bluecode. One of the larger traffic introspection companies, things can look really fishy or scary.
19:40
Of course, they promised they will never use the Symantec. So, this is the state we're in. This is fine. It's not, but people still think about it that HTTPS is safe. And actually, it took a decade to teach people that they have to search for the lock icon.
20:02
But if they do not understand, actually, they do not need to know how the lock icon appears. But the entire lock icon is a farce if you dig into the details. And we're all sitting in a room filled with flames, so to say.
20:20
So, this is where certificate transparency comes into play. Certificate transparency has the goal to identify fraudulent certificate certification authorities. In a perfect world, any certification authority would publish all its logs,
20:42
would publish all the certificates it issues. So, as soon as I get a certificate for schmideker.net, the certification authority, this is part of the public-private key. It can be public. So, wouldn't it be nice if the CA would publish that it just issued a certificate for schmideker.net?
21:03
Basically, yes. Of course, certification authorities do not want this to happen, in particular if they're selling to funky states or funky businesses which earn their money with traffic introspection and so forth.
21:20
So, the perfect world would be the public key of each certificate would be published, the certification authority could say, hey, I just issued this certificate and everybody could see it, could verify it, and it would be a better world. This would help to detect problems very early.
21:41
So, if a small Dutch certification authority would issue a certificate for google.com or torproject.com, this would be noticeable. I mean, this is a small CA. They would be really, I don't know, they should be really surprised if google.com decides to issue a certificate for their service.
22:01
This would shorten the window of opportunity for an attacker. Also, the idea is to have some form of punishment for misbehaving CAs. So, at the moment right now, if a certification authority fucks up and Google is affected, they mandate that they need to have additional steps
22:23
to be reintroduced into the trust stores. Yeah, so this is what Google did. They did the Power Ranger move and they decided they want to make the internet more secure.
22:41
Why Google? Well, Google is uniquely positioned in a way that they control the clients with the browsers, with the android system, and they also control a large portion of the service. So, everyone uses Google except for those that use Bing. And other... No, just kidding.
23:03
What Google did is, once the DigiNotar hack got public, they pinned their certificates. So, since Chrome has a decent update cycle, they can ship the certificates which they expect to see with the browser update. So, as soon as browser updates in the background,
23:21
it can enforce the specific certificate that it expects to see for Google.com, YouTube.com and whatever. Also, it has a really huge market share, 50% and more depending on how you count. Chrome and Chromium are rather popular.
23:42
And lastly, they are a common target. So, if some dictator decides to introspect client emails, user emails, usually they target Gmail.com because they have a decent security. They do not have any other vulnerabilities
24:00
or backdoors to allow access to their content which makes the attack to Gmail a very drastic attack. And with the changes that Google introduced into Chrome with the certificate pinning, they can now detect these attacks.
24:21
But this was already back in 2011. Since then, for example, the Porter Feldt tweet I showed you, if Chrome would go to a website, Google.com or YouTube.com and would see a fraudulent certificate, they would warn the user.
24:43
And what Google then did was to propose a standard to make an RFC, how to transparently publish the logs for certificates that have been issued. So, the idea of the RFC is that
25:01
every certificate issued is public. This is implemented in a public append-only log. So, they have a log, they have open APIs and they accept every certificate. Then, cryptographically assured, the client like the browser
25:21
can verify that this is a publicly logged certificate and the entire system is open for all. So, you can go to the website, you can get the source code, you can run your own log for RFC 6962 and everyone is happy.
25:41
And the goals were to detect misbehaving CAs. As I said, they have their audits, they have their compliance regulations and so forth, but not on the certificate level. With certificate transparency, they become auditable by the public, by the browsers. Everyone can query the logs and see whether or not
26:02
this particular certification authority has issued a certificate for Google.com. All right, now, upon reading the RFC, there are three entities which are part of certification transparency. There are for one, the logs, which are like giant vacuum cleaners.
26:24
They ingest all the certificates which are sent to them and then cryptographically sign them and issue the assurance that this specific certificate has been logged. This has been issued and has not been tampered with and so forth.
26:44
Then there are monitors. They identify suspicious certificates. Usually, these are the certification authorities themselves which run those monitors and then there are the auditors. The auditors usually are implemented in the browser and they verify that the issued certificates are really logged.
27:05
Looking at them in detail, the role of the monitor and the auditor is kind of interchangeably. So, monitor can be an auditor back and forth. What the monitor does is it fetches all the certificates.
27:22
You have this giant pool of certificates. They are cryptographically assured, which we will see soon. The monitor just fetches them all and they have some form of semantic checking. They can see has there been a certificate for my domain, has there been any sub-CAA created which is able to issue certificates
27:46
for traffic introspection and so forth. Also, what they can then with this data do is they can identify misbehaving log operators. I said the logs, they are just gigantic hovers
28:01
which collect all the certificates and they need auditing too, of course. They have a position of power because they are managing this huge pool of certificates and one needs to challenge the log to identify misbehavior
28:20
and this can be done by the monitors, can also be done by the auditors. So, every client right now, it's implemented in Chrome. Chrome checks for these certification transparency, cryptographically signed blogs and the browsers and everything,
28:44
they can verify the log integrity as well. So, in the backend, the log, it creates a hash tree. This hash tree is signed and we will come to that in a second. I got lost here.
29:00
Yes, so both monitors and auditors, they query that the log entity is working correctly. It wouldn't be a good thing if China could go to Google and say to them, hey, we would like to have this certificate removed. Google could then comply or could not comply but whether they remove the certificate,
29:22
this would be auditable and this would be observable to the public. So, the good thing is anyone can run any software. Any one of you in this room can run a log entity. You need to have some kind of access to certificates. So, whether or not you're a certification authority or you can just run a public log
29:43
and everybody can push their certificates to your service. Right now, this is not the case. Usually, the CAs run the monitors and they run the logs but this is not by design. Anybody can run anything.
30:02
One of the problems is availability. So, even though I can set up a log for certificates, I have the problem that my log needs to be online 24-7 and my ISP is not happy if I ask him to guarantee this for me
30:20
if I don't pay much, much, much more. So, how does it work? Currently, if you get a certificate, you go to the certification authority. You say, hey, I'm this wonderful domain. Please, could I get a certificate? And then you get the certificate.
30:41
What's additionally happening with certification transparency is that the CA, upon issuing the certificate, this can be any CA. This can be Let's Encrypt. This can be Thoughtly, Symantec, you name it. What they do is they send the certificate once they issued it.
31:01
They send the certificate to one of the logs. The log then signs the successful reception of the certificate and immediately sends something back. This blob is called the SCT, the Signed Certificate Timestamp.
31:22
And this can then be included in the certificate or with other ways. But the key point here is that once the server installs this certificate, it also installs this SCT so that browsers can see it and parse it.
31:42
Yeah, some people I might have lost here. Nonetheless, everything is easier in pictures. So right now, currently, and these are the pictures from the certification transparency website. Thanks for making them. My TIC skills are really not that good. So I would never have been able to make such beautiful graphs.
32:03
So currently, there's the certification authority. It issues a certificate and the website then installs it in the correct directory. The clients check it and encryption can happen. The additional step, and this is the nice thing,
32:22
it can happen without any additional steps on the server side and the client side. It's just that the certification authority needs to do an additional step. So instead of just issuing the certificate, they send the certificate to the logs. The logs immediately send back the so-called SCT,
32:43
the Signed Certificate Timestamp. And this is then included in the certificate which is shipped to the client. And then the client, if it supports it, can ask the server whether or not this particular certificate is included or not.
33:02
The things that come back from the log, they are signed, they have an ID, and they have a timestamp. These are the important things. They need to be included in those SCT. Also, what will be interesting in the future is that a certificate can have multiple log entries.
33:24
So the SCT is like a promise. The log operator promises to include this certificate in its logs and everybody can check afterwards then if this log has really publicly logged or if the authority has omitted to log it.
33:43
In the future, it will be the case that many SCTs can be within a certificate. So if I'm a certification authority, I can go to any log operator, send them every certificate I have, and then include many, many SCTs. And the SCT is not private.
34:01
This is just an ID, it's a timestamp, and it's a signature. Yeah, this is probably too much. There are multiple ways for the client to verify that this certificate has an SCT. So one of the methods, for example, is OCSB stapling.
34:22
Right now, if you have a certificate, instead of going to the CA, the server can staple the OCSB request signed by the CA. And within this OCSB stapling, there can also be the SCT included.
34:42
How does it work on the log side? Everything there is is a Merkle hash tree. A Merkle hash tree is a wonderful data structure. It's nothing new, it's nothing fancy, and it's not the blockchain. The Merkle hash tree, it's a binary tree,
35:01
so every node has two children, and the hash value of an inner node depends on the two children. So usually it's the concatenation of the values of the two children, gets hashed again up to the root. Makes it very space efficient, because if I want to verify the integrity of one entire tree,
35:22
all I have to check is the hash value of the root. Then, of course, I can get all the relevant hash values, and then I can reconstruct it. SCT uses SHA-256 Merkle tree,
35:40
and as I said, everything below a certain node is responsible for the hash value. So if you remove a node, if you add a node, or if you relocate a node, the hash values of all the upper nodes get changed.
36:01
So each of the log operators, additionally to the promise that it will include every certificate that it receives, it also gives a promise on the maximum merge delay. So the SCT, this promise to include this certificate chain into the log, it can only finish immediately,
36:21
because it's a promise to include this into the log, and the maximum merge delay is the time that the log operator promises to include it in the big, big Merkle hash tree. The good thing about the Merkle hash tree
36:40
is, despite being very space-efficient, calculation-efficient, not that much data overhead, and so forth, it's not possible to backdate elements. This was interesting for one of the certification authorities which issued SHA-1 signed certificates, even though the browsers and everyone agreed that this should not happen anymore.
37:00
It's also not possible to remove elements that have been once in there. So if Sumitac decided to remove the google.com certificate, which was a test certificate, this would be noticeable as well, because if you remove one of the leaves, the hash values up to the root, they all change. And it's also not possible to add elements.
37:22
So if you would like to add an element unnoticeably, you cannot do this, because the hash values of all the upper nodes would change. So how do the logs operate? What they usually do is once every hour, they receive the certificates,
37:41
and once every hour they include them into their Merkle hash tree. Probably already too much detail, but they build a separate tree and then include it and recalculate the root hash value, which is then signed and shipped.
38:00
And the nice thing about the Merkle tree is that you have multiple ways of proving things. So one of the things that can be proved is that whether or not this log operator is honest. So if a log operator removes one of the certificates,
38:21
this becomes visible by changing all the relevant nodes. Also it's very efficient, also a figure from the project's website. So on the left side you have a Merkle tree with some added certificates, some appended certificates.
38:43
And if a monitor or an auditor decides to challenge the log operator at a later point in time, whether or not these certificates D6 and D7 have been correctly added, all the log operator has to send are those highlighted nodes.
39:04
This is the root, this is the thing that is signed, for example, every hour. This is public. The certificates, they are public because they are certificates. And if now someone wants to verify that not only these have been included,
39:21
this is very easy because they just have to calculate all the way up, but also verify that all the other certificates are still there. So none of the old certificates has been removed. There only needs to be three hash values transmitted and then the challenger can recalculate everything.
39:41
So as soon as the challenger knows those hash values, they can concatenate everything back together and in the end it should have the same hash value as the root. Another proof that is possible is that whether a specific certificate is still in the log.
40:02
So it's not only possible to challenge the consistency of the entire log regarding old data, but it's also to verify that a specific certificate is still in the logs or made it into the logs. Remember the SET, the thing that finishes immediately,
40:21
is just the promise to include it in the logs and at a later point in time, anyone, any auditor can challenge the log operator if the certificate is really in the log. So again, if I want to verify that a specific certificate is in the log,
40:46
I have the certificate that I would like to challenge, then I just need in this example those three nodes and everything else, the J node can be calculated because I have the certificate, then I have the hash of the certificate,
41:01
I need this hash, then I can calculate this value and so forth until I'm at the root. So much for under the hood, Merkle hash trees are gone. One of the problems of those logs are they are ever-growing. You might have noticed there is not a single word
41:22
of deleting a certificate for valid reasons, they are ever-growing and of course nothing is forever. So what log operators do is that they rotate the logs. So at a specific point in time, the log gets frozen,
41:42
the tree is then static and there is another log entity which is brought online and used for including the newer certificate. Quite recently, Eviator from Google got frozen, it contains 46 million certificates.
42:02
Small drawback of freezing a log is that as long as one certificate in this log industry is still valid, this log needs to be reachable. As soon as all the certificates in the log have been expired, it can be dumped, but until that, it has to be available for the proofs.
42:28
One of the issues is that right now there are just a few log operators. In the future, there should be many more, not hundreds, thousands of them, but maybe hundreds of them
42:42
and they need to exchange information. So some form of log chatter should appear where the log operators chatter with the clients to verify that they all see the same state of the Merkle trees and this has been published in a paper last year.
43:05
Right now, the idea is not yet at the level where they need to chatter, which we will soon see. This happens when you create memes on the train, usually they're very bad memes, this is apparently gossip girl, I've never seen it,
43:20
but if you Google gossip and meme, so who now runs the log? Who are the entities which are actively running logs? Of course, Google is running the majority of them, they proposed the entire thing, they wrote the code to run these things
43:40
and they run the large open for all certificate logs. Three of them currently are open for all, another one is for Let's Encrypt certificates and another one is for non-Let's Encrypt certificates. Of course, Let's Encrypt issues a lot of certificates thankfully, so they separated that apparently.
44:02
If you read the mailing list, they promised that these three open for all logs are separated geographically and administratively, so they are run by different entities, but again, they all have the same boss and some way it would be better if there would be more open logs,
44:23
so to say. Symantec has one, Wosign, CNN IC, every time Google detects that a fraudulent certificate for Google.com has been issued, those certification authorities are mandated to run CT,
44:43
which is a good thing, I mean public and everything. Also, Google has tens of millions of certificates in them, they really have an open for all log, so everyone can push certificates in there. Digit, Symantec is kind of big, but all the other nodes which are listed on the websites,
45:02
they have 100,000-ish certificates, which is not that much compared to 50 million or 60 million. Right now, Google already mandates certification transparency for extended validity certificate,
45:21
so if you not only see the green text up in the left corner of your browser, but also some fancy name and the big, big green whatever, this is an EV cert, and Google mandates for EV certs to have two SETs. Firefox is in the process of including it, I think.
45:47
Also, apparently certificate transparency works, because when Symantec issued this certificate for Google.com, they released a report stating that they found 23 test certificates,
46:01
Symantec said it issued 23 test certificates, but the logs are public, anybody can query them, and within seconds, you can see that Symantec issued also another 164 certificates for other domains, and also 2,500 certificates for non-existing domains,
46:23
just regarding this one issue. So, I need to hurry, time is running out. Some of the downsides of certification transparency are, of course, privacy. People can learn your internal hosts, so if you have a NAS, for example,
46:40
and this NAS is only reachable within your LAN, and you want to get rid of the browser warning whenever you access the interface of your NAS, you can get a LED encrypt certificate, but since not only the certificate is published, but also it's logged, people can see in the public log files
47:01
that there is for your domain a NAS. Also, log entries must contain the entire chain up to a trusted root certificate, which excludes everything which is self-signed and everything which is DANE. DANE is for verifying TLS certificates using DNSSEC,
47:22
and since these two have no trusted root, they are currently not working for certificate transparency. Now, of course, you want to see the data, you want to play around with this. Basically, what you can query everything is JSON,
47:41
so if you know JSON, you can work with certificate transparency. The basic URL is like this. The URL is any log server responds with the current root and its signature using this URL. Most interestingly, it gives you also the number of certificates
48:02
and the timestamp. It looks then like this JSON, so this is the aviator log from Google, which is now frozen, has 46 something million certificates. The hash value of the Merkle tree and the signature.
48:23
Also, you can challenge the certification logs with consistency proofs, where you have two states of their tree and the log has to prove that it did not modify anything in between them. And of course, you can verify that specific certificate
48:43
is in the tree with the second URL. And you can just push certificates there with a post request, so you push it, they send back the ACT. If you are the log operator, you would then include this. Any website right now which is not using ACT,
49:04
all it takes is a post request. Nothing more. Some screens from the internals. This is for google.com. In the net internals view, what you can see is that signed certificate
49:21
timestamp, the ACT, is received. It is valid and compliance is checked. So, this was for google.com and everything worked out. Last but not least, just to mention it, Komodo operates a large search engine, crt.sh.
49:41
There you can query the public logs. And also, Facebook recently added a monitor for certificates. So, if you own a domain name and you use an entity which... No, if you own a domain, you can get updates
50:01
if the certificate changes. So, they also monitor the public logs. And as soon as, for example, facebook.com uses a new certificate that is logged in CT, you can get a notification for that. This is what it looks like. Remember, Facebook also can send PGP encrypted mails
50:23
and nothing leaks to anyone. This screenshot was borrowed from Scott Helmer. So, what's next? Just one month ago, Google announced that it will mandate
50:41
certificate transparency from October 2017 on. So, if you run a website which is secured by TLS, you might want to check before that date whether or not your certification authority is using certification transparency. I would expect to have more logs and more certificates included in the logs.
51:04
Yeah, in the far future, basically, the idea of transparency in this Merkle tree is open for anything. You could put key management software releases, anything in there. The team at Google, they also built a prototype for that
51:21
called Trillion and described in the paper verifiable data structure. Before we come to the end and questions, there is a distinction. Of course, you could solve this problem
51:40
with blockchain as well, but a Merkle hash tree is much more efficient, much more elegant, anything. When I talked to the colleague on the train here, he said, yeah, of course, you could just push the log into the blockchain, but yeah, not the same thing. Thank you.
52:11
Thank you, Martin, for a very interesting talk. We have a few more minutes left for Q&A. So, if you have a question, please line up next to the microphones
52:21
and ask your question. A reminder that a question has a question mark at the end. Also, if you are exiting, please do so silently and from the front door, please. Exiting from the front door, thank you. I think we have a question over there.
52:42
Do you can recommend some lips or software where I can download and where I can accomplish the TLS handshake from the client side so I can get the SCT via TLS extension, via OCSP extension,
53:04
via the inherited pre-certificate SCT? Not by heart. I mean, if it's part of the TLS certificate, anything will go open SSL, whatever. It's just a field. Same is for OCSP. So, anything that does OCSP will include it.
53:22
It's just that clients that do not know the extension will just not, they will ignore it. But anything that does OCSP or SSL handshake will work. Thank you. A question from this microphone. Hello, thank you very much for the nice talk.
53:40
I wonder, do you know how much space is needed to store all the logs currently? I have the same question, but unfortunately not, no. I can, no. But what they store is the tree and they store the entire chain excluding the root certificates.
54:01
So, probably like two, three, four certificates per entry, which is like, I think you can buy the regular electronic markets, a hard drive which is able to fit a lot of those entries. Next question from that microphone.
54:22
Yeah, thank you for the talk. Why do you need two SCTs for extended validation? Because a single entity might cheat. So, it's like, even though you can detect it, it's still a time frame left. And if you have two SCTs which are operated independently,
54:42
the idea is that it's not that likely that they too will collaborate to make a certificate disappear. Thanks. That microphone, yes. I'm actually a bit surprised because Google has been pushing for making the server hello as small as possible. And of course, this is increasing the server hello
55:00
with, in this case, an SCT. And of course, they are also doing OCSE tapeling. So, that makes it even bigger. And this is like a SHA-256. So, we're talking 256 bits there, plus another one you said that one is not enough. Actually, I've never seen any that has more than one SCT. Have you?
55:22
No. No. Not yet. I've looked around, but nothing. Yeah, yeah. So, yeah, it's actually increasing the size. And I'm just wondering, you know, where is this going? Like, are we just going to eat the cost of having all these SCTs and OCSE tapeling? Or are we prepared to eat that cost?
55:40
If you, I think the cost is small compared to the gain you get by HTTP2. So, if you pipe anything to one single connection, I think it's not that of a cost anymore. But, of course, this is a policy thing to require a certain amount of SCTs to prevent fraudulent CAs.
56:02
Yes. Is the idea that this will replace something like the SSL observatory where browsers send in certs they see and then, you nodded, so I'm going to assume yes. And then also, like, how does this work for people who can't have their certs be public for people who are like issuing things for internal networks?
56:22
If you can't have the certificate public, probably the better way right now is to have a certification authority which is not using CT. In the future, it makes it much more expensive. So, you have to operate your own CA. You can incorporate it in the trust stores. But, of course, this is costly.
56:41
You have to sign the certificate and everything. But if, like, in October 2017, when Chrome rejects all certs that don't have signed time stamps, like, what do I do? Use Edge.
57:02
I'm sure you can disable it somehow, but it's raw. Just a question. What about the decentralized SCT with DHT or other system? Not blockchain, of course. It's possible to do that without central authorities?
57:23
Sorry, say again. English is very bad, I'm sorry. I say it is possible to do that without central authority like Google or other SCT, but with distributed edge table like DHT technologies?
57:41
Yes, yes, of course. And there is an existing implementation? For the centralized thing, yes. Not for the distributed thing. But I think it's just adding a layer of DHT on top of it. So I am sure you can think of a browser extension
58:01
which uses the DHT to obtain the SCTs. But right now it's just purely centralized, but the source is open. Okay, thank you. Hey, so I was just curious how it works if you have a certificate which gets revoked in context of the tree, especially if the tree is frozen. So how does this work? How do you revoke a certificate with a tree
58:22
and then how does it work if it's frozen already? Good question. So the goal of CT is not about revocation. So whether the revocation path is taken regularly,
58:40
so you ask OCSP, it's independent of the revocation thing. It's just publicly saying that this certificate has been issued. So removing a certificate from the tree which has been removed, which has been revoked is not part of the specification. This is not the use case.
59:00
It's just logging the certificates which have been issued. But if you audit all the logs and you want to know if something is going on, it shouldn't be going on, wouldn't you want to know whether the certificate has been revoked at some point? Yes, but not in the logs. The logs are just to prove that the CA has issued this certificate
59:20
and to prove that the log has correctly logged it. Revocation is different. Usually, OCSP is stapling with the CA, but that's a different channel. So this is not for certificate transparency. Thank you. Okay, that's all the time we have for Q&A. Big round of applause again for Martin for his talk.