EXERCISE 2 — Exploring Certificate Transparency on crt.sh ========================================================== DOING IT: - Visit https://crt.sh and search a domain, e.g. %.github.com or example.com (the % is a SQL-style wildcard for subdomains). - You'll see a table of EVERY certificate logged for that domain: the issuer (CA), validity dates, the SAN names covered, and the CT log entry. You can do this for a domain you own to see your own certs. - Command-line equivalent (JSON): curl -s "https://crt.sh/?q=example.com&output=json" | head WHAT PROBLEM CT SOLVES: - The Chapter 5/11 risk: a trusted CA could MIS-ISSUE a certificate for a domain to someone who doesn't own it (attacker, or a compromised/coerced CA). Normal chain verification would NOT catch this -- the cert is genuinely signed by a trusted CA, so browsers accept it. - CT requires every issued cert to be published to public, append-only, cryptographically verifiable logs, and browsers REJECT certs without proof of logging. So no certificate for your domain can be issued in secret -- it becomes publicly visible, whoever requested it. - Domain owners can monitor the logs (or use an alerting service) and be notified if ANY cert is issued for their domain that they didn't request -- an early warning of compromise or mis-issuance. WHY "DETECTION, NOT PREVENTION": - CT does not stop a CA from issuing a bad cert in the first place; the mis-issued cert can still technically be created. - What CT guarantees is that the mis-issuance CANNOT BE HIDDEN -- it must be logged to be trusted, so it WILL be visible and can be caught. - That shift to guaranteed detection is the deterrent: a CA knowing every cert is publicly logged has overwhelming incentive not to misbehave, and several CAs have been DISTRUSTED after CT exposed bad behaviour. HOW CT IMPROVES ON PINNING FOR THE ROGUE-CA PROBLEM: - Pinning (Chapter 11) also defends against rogue/other-CA certs, but it's a footgun: pin the wrong key or need to rotate, and you BRICK your own clients (HPKP was removed from browsers for this reason). - CT solves the same rogue-CA threat WITHOUT that fragility: there's no pin to get wrong, nothing client-side to lock you out, and it works globally for all domains automatically. It detects mis-issuance across the whole ecosystem rather than each site brittlely hard-coding keys. - Hence CT is the preferred, safer successor to pinning for keeping the CA ecosystem honest.