( Recent Developments in Server Authen;ca;on) Trevor Perrin - - PowerPoint PPT Presentation

recent developments in server authen ca on
SMART_READER_LITE
LIVE PREVIEW

( Recent Developments in Server Authen;ca;on) Trevor Perrin - - PowerPoint PPT Presentation

Transparency, Trust Agility, Pinning ( Recent Developments in Server Authen;ca;on) Trevor Perrin <trevp@trevp.net> Cer;ficate Authori;es CA Web server requests


slide-1
SLIDE 1

Transparency, ¡Trust ¡Agility, ¡Pinning ¡ ¡(Recent ¡Developments ¡in ¡Server ¡Authen;ca;on) ¡

Trevor ¡Perrin ¡<trevp@trevp.net> ¡

slide-2
SLIDE 2

Cer;ficate ¡Authori;es ¡

Browser ¡ Web ¡Server ¡

Web ¡server ¡requests ¡ cert, ¡typically ¡ authen;cated ¡via ¡ email ¡ Server ¡presents ¡cert ¡ to ¡Client ¡

CA ¡

slide-3
SLIDE 3

Web ¡PKI ¡

  • 50+ ¡Root ¡CAs, ¡unknown ¡number ¡of ¡Sub ¡CAs ¡
  • Most ¡CAs ¡can ¡issue ¡certs ¡for ¡any ¡domain ¡
  • Known ¡CA ¡failures ¡in ¡last ¡2 ¡years: ¡

– Comodo ¡-­‑ ¡hacker ¡issued ¡bad ¡certs ¡ – Diginotar ¡-­‑ ¡hacker ¡issued ¡bad ¡certs ¡for ¡MITM ¡ – Trustwave ¡-­‑ ¡issued ¡sub ¡CA ¡to ¡customer ¡for ¡MITM ¡ – Turktrust ¡-­‑ ¡issued ¡sub ¡CA ¡by ¡mistake, ¡used ¡for ¡MITM ¡

slide-4
SLIDE 4

Can ¡we ¡recover ¡from ¡bad ¡certs? ¡

slide-5
SLIDE 5

Revoca;on ¡

  • Online ¡lookups ¡(CRLs, ¡OCSP) ¡

– Slow ¡ – Leaks ¡browsing ¡history ¡ – Connec;on ¡could ¡fail ¡(security/reliability ¡tradeoff) ¡

  • Fresh ¡signatures ¡from ¡CA ¡(e.g. ¡OCSP ¡stapling) ¡
  • Out-­‑of-­‑band ¡update ¡(soZware ¡update, ¡crlsets) ¡

– (Chrome ¡current ¡crlset ¡= ¡~24000 ¡entries, ¡~250 ¡KB) ¡ ¡

slide-6
SLIDE 6

Change ¡who ¡we ¡trust? ¡

slide-7
SLIDE 7

DNSSEC/DANE ¡

  • DNSSEC ¡adds ¡key ¡and ¡signature ¡records ¡to ¡DNS

¡

  • DANE ¡adds ¡records ¡for ¡applica;on ¡keys ¡
  • Considered ¡as ¡a ¡PKI: ¡

– Fewer ¡trusted ¡par;es ¡(ICANN ¡root, ¡TLD ¡registry, ¡registrar, ¡and ¡your ¡own ¡DNSSEC ¡keys) ¡ – Builds ¡on ¡exis;ng ¡authen;ca;on ¡rela;onships ¡

slide-8
SLIDE 8

DNSSEC/DANE ¡challenges ¡

  • “Last ¡mile” ¡problem: ¡gecng ¡DNSSEC ¡to ¡clients ¡

– Fetching ¡DNSSEC ¡records ¡over ¡DNS ¡has ¡reliability ¡and ¡latency ¡problems ¡ – Stapling ¡needs ¡universal ¡deployment ¡before ¡a ¡“fail-­‑if-­‑absent” ¡client ¡policy ¡

  • DNSSEC ¡is ¡not ¡widely ¡deployed ¡on ¡domains ¡

– More ¡complex ¡than ¡cert ¡requests ¡

slide-9
SLIDE 9

Change ¡how ¡much ¡we ¡have ¡to ¡trust ¡anyone? ¡

slide-10
SLIDE 10

Cer;ficate ¡Transparency ¡

  • Goals ¡

– CAs ¡publish ¡all ¡cer;ficates ¡

  • Challenges ¡

– What ¡if ¡they ¡don’t? ¡ (mistakes, ¡hacks, ¡inten;onal, ¡etc.) ¡

  • Laurie ¡and ¡Langley ¡et ¡al, ¡Google, ¡started ¡2011 ¡

– IETF ¡draZ ¡in ¡progress ¡

slide-11
SLIDE 11

Logs ¡and ¡Monitors ¡

Browser ¡ Web ¡Server ¡

CA ¡

Monitors ¡ Logs ¡

Monitors ¡watch ¡ logs ¡and ¡send ¡ revoca;ons ¡ CAs ¡send ¡certs ¡to ¡Logs ¡ Logs ¡periodically ¡publish ¡ hash ¡trees ¡of ¡all ¡certs ¡

slide-12
SLIDE 12

CT ¡Part ¡1 ¡– ¡Log ¡Signing ¡

Browser ¡ Web ¡Server ¡

CA ¡sends ¡each ¡pre-­‑signed ¡ cert ¡to ¡a ¡quorum ¡of ¡logs, ¡ gets ¡back ¡“log ¡signatures” ¡to ¡ embed ¡in ¡cert ¡ Browser ¡rejects ¡any ¡cert ¡ without ¡quorum ¡of ¡log ¡sigs ¡

CA ¡

Logs ¡ Monitors ¡

Monitors ¡watch ¡ logs ¡and ¡send ¡ revoca;ons ¡

slide-13
SLIDE 13

CT ¡Part ¡2 ¡– ¡Online ¡Log ¡Checking ¡

Browser ¡ Web ¡Server ¡ Monitors ¡ Log ¡

Monitors ¡send ¡ revoca;ons ¡and ¡ hash ¡tree ¡roots. ¡ Browsers ¡report ¡ certs ¡not ¡ ¡in ¡tree. ¡ Browsers ¡asynchronously ¡ fetch ¡and ¡check ¡inclusion ¡ proofs ¡for ¡each ¡cert ¡they ¡ see ¡

  

slide-14
SLIDE 14

Cert ¡Transparency ¡Challenges ¡

  • Requires ¡mul;ple ¡high-­‑availability ¡logs ¡
  • Log ¡signatures ¡need ¡universal ¡deployment

¡before ¡a ¡“fail-­‑if-­‑absent” ¡policy ¡

– But ¡can ¡be ¡done ¡by ¡CAs ¡

  • Requires ¡good ¡monitoring ¡and ¡revoca;on, ¡and

¡an ¡infrequently-­‑breached ¡CA ¡system ¡ ¡

slide-15
SLIDE 15

Don’t ¡use ¡CAs? ¡

slide-16
SLIDE 16

CAs ¡again ¡

Browser ¡ Web ¡Server ¡

Web ¡server ¡requests ¡cert ¡ ¡

CA ¡

slide-17
SLIDE 17

Convergence ¡

Browser ¡ Monitors ¡ Web ¡Server ¡

Browser ¡sends ¡ server ¡name ¡and ¡ hash ¡of ¡cert ¡to ¡ monitors ¡

query ¡

slide-18
SLIDE 18

Convergence ¡

Browser ¡ Monitors ¡ Web ¡Server ¡

Monitors ¡probe ¡ server ¡to ¡confirm ¡ the ¡cert ¡ Browser ¡sends ¡ server ¡name ¡and ¡ hash ¡of ¡cert ¡to ¡ monitors ¡

query ¡ probe ¡

slide-19
SLIDE 19

Convergence ¡

Browser ¡ Monitors ¡ Web ¡Server ¡

Network ¡ Perspec;ve ¡ Trust ¡Agility ¡

slide-20
SLIDE 20

Trust ¡Agility ¡in ¡ac;on ¡

Monitors ¡ Browsers ¡ Observable ¡Facts ¡(e.g. ¡observed ¡certs, ¡public ¡log) ¡

slide-21
SLIDE 21

Observa;onal ¡Trust ¡Modes ¡

  • Net ¡Perspec;ve: ¡“Do ¡you ¡see ¡what ¡I ¡see?” ¡
  • Key ¡Con;nuity: ¡“Is ¡this ¡the ¡same ¡as ¡before?” ¡
  • SSH, ¡Convergence, ¡Perspec;ves, ¡etc. ¡
  • Ra;onale: ¡Internet ¡works ¡for ¡most ¡people

¡most ¡of ¡the ¡;me ¡

slide-22
SLIDE 22

Convergence ¡Challenges ¡

  • Online ¡lookups ¡

– Performed ¡on ¡first ¡connec;on ¡or ¡key ¡discon;nuity ¡ – Costly ¡infrastructure ¡ – Performance ¡and ¡reliability ¡risk ¡

slide-23
SLIDE 23

Observa;onal ¡Trust ¡Challenges ¡

  • Key ¡Con;nuity ¡

– Doesn’t ¡protect ¡ini;al ¡connec;on ¡ – Doesn’t ¡handle ¡key ¡changes ¡well ¡

  • Network ¡Perspec;ve ¡

– Handles ¡ini;al ¡connec;on ¡and ¡key ¡changes ¡at ¡cost ¡of ¡online ¡lookups ¡ – Doesn’t ¡handle ¡mul;ple-­‑keys-­‑per-­‑site ¡well ¡

slide-24
SLIDE 24

Observa;onal ¡Trust ¡

Browser ¡ Monitors ¡ Web ¡Server ¡

Key ¡Con;nuity ¡ Trust ¡Agility ¡ Network ¡ Perspec;ve ¡

slide-25
SLIDE 25

Can ¡we ¡improve ¡observa;onal ¡trust… ¡

slide-26
SLIDE 26

…with ¡some ¡help? ¡

Browser ¡ Monitors ¡ Web ¡Server ¡

Key ¡Con;nuity ¡ Trust ¡Agility ¡ Network ¡ Perspec;ve ¡

“I’m ¡using ¡keys ¡X,Y,Z ¡ for ¡the ¡next ¡week” ¡

slide-27
SLIDE 27

Server ¡Asserted ¡Pinning ¡

  • Improves ¡reliability ¡(server ¡has ¡made ¡a

¡commitment) ¡

– Regardless ¡of ¡mul;ple-­‑keys-­‑per-­‑site ¡or ¡key ¡change ¡

  • Can ¡help ¡with ¡ini;al ¡connec;on ¡/ ¡online

¡lookup ¡

– Gives ¡us ¡longer-­‑lived ¡“tokens” ¡which ¡can ¡be ¡distributed ¡in ¡different ¡ways ¡

slide-28
SLIDE 28

Pins ¡

  • Pin ¡= ¡(Name, ¡Authen;ca;on ¡Data, ¡Expira;on) ¡
  • Authen;ca;on ¡Data ¡

– Public ¡key(s) ¡ – Opt-­‑In ¡(HSTS, ¡DNSSEC, ¡Cer;ficate ¡Transparency) ¡

  • How ¡are ¡pins ¡asserted? ¡
  • How ¡are ¡pins ¡distributed? ¡
slide-29
SLIDE 29

Distribu;ng ¡Pins ¡

  • Preloaded ¡pins ¡
  • Key ¡con;nuity ¡
slide-30
SLIDE 30

Secure ¡Links ¡

Browser ¡

Introducer ¡ Website ¡

Web ¡Server ¡

Web ¡page ¡with ¡ secure ¡links ¡

slide-31
SLIDE 31

Secure ¡Links ¡

Browser ¡

Introducer ¡ Website ¡

Web ¡Server ¡

Web ¡page ¡with ¡ secure ¡links ¡

E.g. ¡trusted ¡search ¡ engine ¡

Observa;onal ¡ Trust ¡

slide-32
SLIDE 32

Secure ¡Links ¡

<a ¡link-­‑security="expiry=1357849989; ¡ ¡ pin-­‑sha256=YWRmYXNkZmFzZGZhc2RmcXdlcnF3ZXJxd2VycXdlcnF=; ¡ ¡ pin-­‑sha256=LPJNul+wow4m6DsqxbninhsWHlwfp0JecwQzYpOLmCQ=;" ¡ ¡ href="hyps://www.example.com">a ¡secure ¡link!</a> ¡

slide-33
SLIDE 33

Secure ¡Links ¡

  • Use ¡current ¡trust ¡model ¡on ¡the ¡web ¡
  • A ¡broken ¡link ¡is ¡the ¡introducer’s ¡fault ¡
  • Build ¡on ¡trust ¡in ¡the ¡web’s ¡major ¡“hubs” ¡
  • Search ¡engines, ¡social ¡networks, ¡link ¡shorteners ¡
  • Also ¡useful ¡for ¡loading ¡page ¡resources ¡securely

¡

  • i.e. ¡JavaScript ¡libraries ¡
  • Feedback ¡welcome: ¡www.secure-­‑links.org ¡
slide-34
SLIDE 34

Asser;ng ¡Pins ¡

  • HPKP ¡

– HTTP ¡layer, ¡pins ¡to ¡EE ¡keys ¡and/or ¡CA ¡keys ¡

  • TACK ¡

– At ¡TLS ¡layer, ¡pins ¡to ¡self-­‑chosen ¡signing ¡key ¡

slide-35
SLIDE 35

Pin ¡Asser;on ¡Challenges ¡

  • Risks ¡to ¡relying ¡party ¡

– Bad ¡pins ¡

  • Risks ¡to ¡asser;ng ¡party ¡

– Key ¡loss ¡ – Key ¡compromise ¡ – Inflexible ¡/ ¡impossible ¡key ¡changes ¡

slide-36
SLIDE 36

Pin ¡Ac;va;on ¡

end ¡

30 ¡days ¡

Ac;ve ¡periods ¡ ini;al ¡ current ¡

30 ¡days ¡

Ac;ve ¡period ¡dura;on ¡= ¡MIN(30 ¡days, ¡current ¡– ¡ini;al) ¡

slide-37
SLIDE 37

pin ¡1 ¡

Pin ¡flexibility ¡

Signing ¡key ¡ key ¡3 ¡ pin ¡2 ¡ pin ¡3 ¡ Ex: ¡(K1,K2,K3,K4) ¡ ¡(K3,K4,K5,K6) ¡ ¡… ¡ key ¡1 ¡ key ¡2 ¡

ShiZing ¡pins ¡could ¡use ¡CA ¡or ¡EE ¡keys ¡

slide-38
SLIDE 38

Pin ¡Redundancy ¡

  • Pin ¡to ¡mul;ple ¡public ¡keys ¡(HPKP) ¡

– E.g. ¡several ¡popular ¡CAs ¡and ¡your ¡TLS ¡key ¡

  • Distributed ¡backup ¡/ ¡delega;on ¡of ¡private ¡key ¡

– E.g. ¡TACK ¡

slide-39
SLIDE 39

Summary ¡

  • Lots ¡to ¡think ¡about ¡
  • Oh, ¡and ¡we ¡can ¡combine ¡lots ¡of ¡these ¡things! ¡

– Sovereign ¡Keys ¡~= ¡transparency ¡+ ¡pinning ¡

slide-40
SLIDE 40

Thanks! ¡

  • hyp://dnssec-­‑deployment.org ¡
  • hyp://www.cer;ficate-­‑transparency.org ¡
  • hyp://convergence.io ¡
  • hyp://tack.io ¡
  • hyp://tools.ie}.org/html/draZ-­‑ie}-­‑websec
  • ­‑key-­‑pinning ¡
  • hyps://www.eff.org/sovereign-­‑keys ¡
  • hyp://www.secure-­‑links.org ¡