Certificate Transparency Linus Nordberg, NORDUnet [email protected] 0x3291265 Tech Day by Init 2015, Stockholm Intro I Någon som hört talas om Certificate Transparency (CT)? I Certificate Transparency tillhandahåller detektion I Skydd som en slags sekundäreffekt Problem med PKI I CA – Certification Authority I Intygar att publik nyckel hör till domännamn I Genom att binda publik nyckel till namn, i ett s.k. certifikat I Ingen hierarki – alla CA intygar godtycklig bindning I Din webbläsare litar på över 1000 CA-nycklar från 150-250 organisationer I Revokering är svårt I Ett allvarligt problem som kan uppstå när CA sjabblar kallas “man in the middle” (MITM) I Comodo, DigiNotar, ANSSI, Symantec CT-loggar I Publicera alla certifikat på publika anslagstavlor – loggar I Webbläsare kräver inkludering i loggar En logg är I I I I publik – alla kan lägga till, alla kan verifiera append-only – data ändras inte och försvinner inte verifierbar – utomstående kan effektivt verifiera korrekthet I Domänägare – de enda som egentligen vet vilka cert som ska vara utfärdade – monitorerar loggar I RESTful http-API RFC6962, JSON med Base64-kodade TLS-records Datastrukturer I Loggen lagrar cert-kedjor i en databas I Konsistens ska kunna verifieras av vem som helst I Hash-kedja à la blockchain? Dyr att verifiera I Merkle-träd! Trädhuvudet fixerar samtliga poster I Bevis är billiga att tillverka, skicka och verifiera Merkle-träd I Löven är hashar över log-entryn leaf0 = H(cert0 ), leaf1 = H(cert1 ) I Noderna är hashar över sina två barn node00 = H(leaf0 + leaf1 ) node10 = H(node00 + node01 ) Merkle-träd Preimage-attack I Användaren väljer input – varning för kollisioner! I “Second preimage attack” är att givet m hitta H(m) = H(m’) I Samma funktion för löv som för noder betyder problem I Vad händer om ett löv innheåller två konkatinerade syskon-hashar? I Föräldern blir identisk med en annan nod i trädet I Detta fel finns i amazons backup-tjänst “glacier” API I Sänd in cert ==> Signed Certificate Timestamp (SCT) I SCT är ett löfte om inkludering i loggen, inom en viss tid I Hämta senaste signerade trädhuvud (STH) Hämta bevis I I I I konsistens mellan två träd inklusion, givet en entry-hash Hämta poster baserat på index i loggen Verifiering och bevis I I Bevis för “cert2 i head3”: leaf3, node0_0 Verifiering och bevis I Bevis för “cert2 i head3”: leaf3, node0_0 I Bevis för “head3 del av head6”: node1_1 Roller i CT-systemet Vad kan upptäckas I “The lying CA” – felaktigt utfärdande (“misissuance”) I I I I I slarv (Symantec 2015) lurad att signera ett falskt förhållande förlorad nyckel (Comodo 2011, DigiNotar 2011) luras medvetet, t.ex. p.g.a. påtryckningar (ANSSI 2013) En lurig log kan visa olika vyer – vi behöver “gossip” Status I Chrome kräver att EV-cert är loggade I Flera fall av felaktigt utfärdande har redan upptäckts Standardisering I I I I I I RFC6962 draft-ietf-trans-rfc6962-bis draft-ietf-trans-gossip draft-ietf-trans-threat-analysis Log-implementationer I I Google https://github.com/google/certificate-transparency NORDUnet https://www.ct.nordu.net/ Frågor