Minting Free Certificates for the Entire Web Let’s Encrypt · Let’s Encrypt: Began as a merger...

58
Let’s Encrypt Minting Free Certificates for the Entire Web {jdkasten,pde,yan}@eff.org

Transcript of Minting Free Certificates for the Entire Web Let’s Encrypt · Let’s Encrypt: Began as a merger...

Page 1: Minting Free Certificates for the Entire Web Let’s Encrypt · Let’s Encrypt: Began as a merger of EFF/UMich & Mozilla projects Is now housed in its own nonprofit, the Internet

Let’s EncryptMinting Free Certificates for the Entire Web

{jdkasten,pde,yan}@eff.org

Page 2: Minting Free Certificates for the Entire Web Let’s Encrypt · Let’s Encrypt: Began as a merger of EFF/UMich & Mozilla projects Is now housed in its own nonprofit, the Internet

Problem

1. TLS is not ubiquitous, even in 2015

Page 3: Minting Free Certificates for the Entire Web Let’s Encrypt · Let’s Encrypt: Began as a merger of EFF/UMich & Mozilla projects Is now housed in its own nonprofit, the Internet

June, 2014

Page 4: Minting Free Certificates for the Entire Web Let’s Encrypt · Let’s Encrypt: Began as a merger of EFF/UMich & Mozilla projects Is now housed in its own nonprofit, the Internet

(╯°□°)╯︵ ┻━┻

:(

June, 2015

Page 5: Minting Free Certificates for the Entire Web Let’s Encrypt · Let’s Encrypt: Began as a merger of EFF/UMich & Mozilla projects Is now housed in its own nonprofit, the Internet

Problem

2. Setting up TLS is tedious, even in 2015

Page 6: Minting Free Certificates for the Entire Web Let’s Encrypt · Let’s Encrypt: Began as a merger of EFF/UMich & Mozilla projects Is now housed in its own nonprofit, the Internet
Page 7: Minting Free Certificates for the Entire Web Let’s Encrypt · Let’s Encrypt: Began as a merger of EFF/UMich & Mozilla projects Is now housed in its own nonprofit, the Internet

How long does it take to set up TLS?

Page 9: Minting Free Certificates for the Entire Web Let’s Encrypt · Let’s Encrypt: Began as a merger of EFF/UMich & Mozilla projects Is now housed in its own nonprofit, the Internet

Problem

3. TLS config is confusing

Page 10: Minting Free Certificates for the Entire Web Let’s Encrypt · Let’s Encrypt: Began as a merger of EFF/UMich & Mozilla projects Is now housed in its own nonprofit, the Internet
Page 11: Minting Free Certificates for the Entire Web Let’s Encrypt · Let’s Encrypt: Began as a merger of EFF/UMich & Mozilla projects Is now housed in its own nonprofit, the Internet
Page 12: Minting Free Certificates for the Entire Web Let’s Encrypt · Let’s Encrypt: Began as a merger of EFF/UMich & Mozilla projects Is now housed in its own nonprofit, the Internet
Page 13: Minting Free Certificates for the Entire Web Let’s Encrypt · Let’s Encrypt: Began as a merger of EFF/UMich & Mozilla projects Is now housed in its own nonprofit, the Internet
Page 14: Minting Free Certificates for the Entire Web Let’s Encrypt · Let’s Encrypt: Began as a merger of EFF/UMich & Mozilla projects Is now housed in its own nonprofit, the Internet
Page 15: Minting Free Certificates for the Entire Web Let’s Encrypt · Let’s Encrypt: Began as a merger of EFF/UMich & Mozilla projects Is now housed in its own nonprofit, the Internet

https://www.ssllabs.com/ssltest

Page 16: Minting Free Certificates for the Entire Web Let’s Encrypt · Let’s Encrypt: Began as a merger of EFF/UMich & Mozilla projects Is now housed in its own nonprofit, the Internet

ssl_protocols TLSv1 TLSv1.1 TLSv1.2;ssl_prefer_server_ciphers on;

# Using list of ciphers from "Bulletproof SSL and TLS"ssl_ciphers "ECDHE-ECDSA-AES128-GCM-SHA256 ECDHE-ECDSA-AES256-GCM-SHA384 ECDHE-ECDSA-AES128-SHA ECDHE-ECDSA-AES256-SHA ECDHE-ECDSA-AES128-SHA256 ECDHE-ECDSA-AES256-SHA384 ECDHE-RSA-AES128-GCM-SHA256 ECDHE-RSA-AES256-GCM-SHA384 ECDHE-RSA-AES128-SHA ECDHE-RSA-AES128-SHA256 ECDHE-RSA-AES256-SHA384 DHE-RSA-AES128-GCM-SHA256 DHE-RSA-AES256-GCM-SHA384 DHE-RSA-AES128-SHA DHE-RSA-AES256-SHA DHE-RSA-AES128-SHA256 DHE-RSA-AES256-SHA256 EDH-RSA-DES-CBC3-SHA";

Page 17: Minting Free Certificates for the Entire Web Let’s Encrypt · Let’s Encrypt: Began as a merger of EFF/UMich & Mozilla projects Is now housed in its own nonprofit, the Internet

subtle product ad placement

Page 18: Minting Free Certificates for the Entire Web Let’s Encrypt · Let’s Encrypt: Began as a merger of EFF/UMich & Mozilla projects Is now housed in its own nonprofit, the Internet

4. Mixed content blocking

Problem

Page 19: Minting Free Certificates for the Entire Web Let’s Encrypt · Let’s Encrypt: Began as a merger of EFF/UMich & Mozilla projects Is now housed in its own nonprofit, the Internet
Page 20: Minting Free Certificates for the Entire Web Let’s Encrypt · Let’s Encrypt: Began as a merger of EFF/UMich & Mozilla projects Is now housed in its own nonprofit, the Internet

https://eff.org/https-everywhere

Page 21: Minting Free Certificates for the Entire Web Let’s Encrypt · Let’s Encrypt: Began as a merger of EFF/UMich & Mozilla projects Is now housed in its own nonprofit, the Internet
Page 22: Minting Free Certificates for the Entire Web Let’s Encrypt · Let’s Encrypt: Began as a merger of EFF/UMich & Mozilla projects Is now housed in its own nonprofit, the Internet

5. There are too many certificate authorities.

Problem

Page 23: Minting Free Certificates for the Entire Web Let’s Encrypt · Let’s Encrypt: Began as a merger of EFF/UMich & Mozilla projects Is now housed in its own nonprofit, the Internet
Page 24: Minting Free Certificates for the Entire Web Let’s Encrypt · Let’s Encrypt: Began as a merger of EFF/UMich & Mozilla projects Is now housed in its own nonprofit, the Internet
Page 25: Minting Free Certificates for the Entire Web Let’s Encrypt · Let’s Encrypt: Began as a merger of EFF/UMich & Mozilla projects Is now housed in its own nonprofit, the Internet

Our vision for a solution

Actually, two visions for a solution…

1. A solution for security

2. A solution for usability

Page 26: Minting Free Certificates for the Entire Web Let’s Encrypt · Let’s Encrypt: Began as a merger of EFF/UMich & Mozilla projects Is now housed in its own nonprofit, the Internet
Page 27: Minting Free Certificates for the Entire Web Let’s Encrypt · Let’s Encrypt: Began as a merger of EFF/UMich & Mozilla projects Is now housed in its own nonprofit, the Internet

Security

How do we decide whether to issue a cert?

Page 28: Minting Free Certificates for the Entire Web Let’s Encrypt · Let’s Encrypt: Began as a merger of EFF/UMich & Mozilla projects Is now housed in its own nonprofit, the Internet
Page 29: Minting Free Certificates for the Entire Web Let’s Encrypt · Let’s Encrypt: Began as a merger of EFF/UMich & Mozilla projects Is now housed in its own nonprofit, the Internet

Dialog: ACME protocolShrubberies: ACME “challenges”

Page 30: Minting Free Certificates for the Entire Web Let’s Encrypt · Let’s Encrypt: Began as a merger of EFF/UMich & Mozilla projects Is now housed in its own nonprofit, the Internet

Question 0: Bootstrapping

Without prior crypto, what key do we use?

Page 31: Minting Free Certificates for the Entire Web Let’s Encrypt · Let’s Encrypt: Began as a merger of EFF/UMich & Mozilla projects Is now housed in its own nonprofit, the Internet

Usual Answer: Domain Validation (DV)

- Send email to [email protected] Make a request to http://example.com/$NONCE

Page 32: Minting Free Certificates for the Entire Web Let’s Encrypt · Let’s Encrypt: Began as a merger of EFF/UMich & Mozilla projects Is now housed in its own nonprofit, the Internet

Types of DV for Let’s Encrypt?

At launch: DVSNI on port 443, or Simple HTTP on port 80

Proposed for later? DNS validation DVSNI2 on ports {443, 100?}

Page 33: Minting Free Certificates for the Entire Web Let’s Encrypt · Let’s Encrypt: Began as a merger of EFF/UMich & Mozilla projects Is now housed in its own nonprofit, the Internet

Usual Answer: Domain Validation (DV)

Page 34: Minting Free Certificates for the Entire Web Let’s Encrypt · Let’s Encrypt: Began as a merger of EFF/UMich & Mozilla projects Is now housed in its own nonprofit, the Internet

Not very reassuring!

Page 35: Minting Free Certificates for the Entire Web Let’s Encrypt · Let’s Encrypt: Began as a merger of EFF/UMich & Mozilla projects Is now housed in its own nonprofit, the Internet

Slightly better: multi-path DV

Page 36: Minting Free Certificates for the Entire Web Let’s Encrypt · Let’s Encrypt: Began as a merger of EFF/UMich & Mozilla projects Is now housed in its own nonprofit, the Internet

but we can do better...

Page 37: Minting Free Certificates for the Entire Web Let’s Encrypt · Let’s Encrypt: Began as a merger of EFF/UMich & Mozilla projects Is now housed in its own nonprofit, the Internet

Pure DV should only happen once

Page 38: Minting Free Certificates for the Entire Web Let’s Encrypt · Let’s Encrypt: Began as a merger of EFF/UMich & Mozilla projects Is now housed in its own nonprofit, the Internet
Page 39: Minting Free Certificates for the Entire Web Let’s Encrypt · Let’s Encrypt: Began as a merger of EFF/UMich & Mozilla projects Is now housed in its own nonprofit, the Internet

Observatory → Proof of key Possession

Database of essentially all public certsCollected from: {*:443 scans, client submissions, CT logs}

Page 40: Minting Free Certificates for the Entire Web Let’s Encrypt · Let’s Encrypt: Began as a merger of EFF/UMich & Mozilla projects Is now housed in its own nonprofit, the Internet

Valid cert for somebank.co.nz or webmail.corp.co? Require proof from that cert’s key.

Won’t ever allow pure DV to defeat crypto

May require help from another CA if you lost all keys

Page 41: Minting Free Certificates for the Entire Web Let’s Encrypt · Let’s Encrypt: Began as a merger of EFF/UMich & Mozilla projects Is now housed in its own nonprofit, the Internet

This gets us TOFU!

Page 42: Minting Free Certificates for the Entire Web Let’s Encrypt · Let’s Encrypt: Began as a merger of EFF/UMich & Mozilla projects Is now housed in its own nonprofit, the Internet

Question 1: TLS & HTTPS problems

Provide a client (or “agent”) that basically gets it right

Page 43: Minting Free Certificates for the Entire Web Let’s Encrypt · Let’s Encrypt: Began as a merger of EFF/UMich & Mozilla projects Is now housed in its own nonprofit, the Internet
Page 44: Minting Free Certificates for the Entire Web Let’s Encrypt · Let’s Encrypt: Began as a merger of EFF/UMich & Mozilla projects Is now housed in its own nonprofit, the Internet
Page 45: Minting Free Certificates for the Entire Web Let’s Encrypt · Let’s Encrypt: Began as a merger of EFF/UMich & Mozilla projects Is now housed in its own nonprofit, the Internet

Default client functionality plan

Tweak server (Apache/Nginx/*) to pass challengesInstall the resulting certTweak security options for good resultsAutomate renewal & some security response tasks

Page 46: Minting Free Certificates for the Entire Web Let’s Encrypt · Let’s Encrypt: Began as a merger of EFF/UMich & Mozilla projects Is now housed in its own nonprofit, the Internet

What kinds of security automation?

Easy: Cipher tuning, OCSP stapling, CSP upgrade-insecureMedium: 302 HTTP →HTTPS for modern clients, auto renewal & rekeyingHard: Full rewrites, HSTSHardest: Mixed content auditing & correction, HPKP

Page 47: Minting Free Certificates for the Entire Web Let’s Encrypt · Let’s Encrypt: Began as a merger of EFF/UMich & Mozilla projects Is now housed in its own nonprofit, the Internet

Question 3: CAs are terrifying

Page 48: Minting Free Certificates for the Entire Web Let’s Encrypt · Let’s Encrypt: Began as a merger of EFF/UMich & Mozilla projects Is now housed in its own nonprofit, the Internet

Running your own CA is no less terrifyingDefend in depth, butPlan to detect and survive compromise events

Page 49: Minting Free Certificates for the Entire Web Let’s Encrypt · Let’s Encrypt: Began as a merger of EFF/UMich & Mozilla projects Is now housed in its own nonprofit, the Internet

Protection against CAs (us)

Completely transparent operation:- publish ACME server logs- publish full verifiable cert history- publish to Certificate Transparency logs

Page 50: Minting Free Certificates for the Entire Web Let’s Encrypt · Let’s Encrypt: Began as a merger of EFF/UMich & Mozilla projects Is now housed in its own nonprofit, the Internet

Protection against CAs (others)

We’ll support HPKP if you’re brave / crazy

Page 51: Minting Free Certificates for the Entire Web Let’s Encrypt · Let’s Encrypt: Began as a merger of EFF/UMich & Mozilla projects Is now housed in its own nonprofit, the Internet

Protection against CAs

In case things go wrong: plan to support rapid server-initiated rekeying (heartbleed, weak keys) or recertification (compromise recovery)

Page 52: Minting Free Certificates for the Entire Web Let’s Encrypt · Let’s Encrypt: Began as a merger of EFF/UMich & Mozilla projects Is now housed in its own nonprofit, the Internet

Let’s Encrypt:

Began as a merger of EFF/UMich & Mozilla projectsIs now housed in its own nonprofit, the Internet Security Research Group (ISRG)Major sponsors: EFF, Mozilla, Cisco, Akamai; others: IdenTrust, Automatic

Page 53: Minting Free Certificates for the Entire Web Let’s Encrypt · Let’s Encrypt: Began as a merger of EFF/UMich & Mozilla projects Is now housed in its own nonprofit, the Internet

Let’s Encrypt

Operations: ISRG staff & MozillaServer code: Mozilla & EFFClient code: EFF & UMichPolicy, legal & bureaucracy: everyone

Page 54: Minting Free Certificates for the Entire Web Let’s Encrypt · Let’s Encrypt: Began as a merger of EFF/UMich & Mozilla projects Is now housed in its own nonprofit, the Internet

Current schedule

First cert: week of September 7thValidity & beta program: mid OctoberGeneral availability: week of November 16th

Page 55: Minting Free Certificates for the Entire Web Let’s Encrypt · Let’s Encrypt: Began as a merger of EFF/UMich & Mozilla projects Is now housed in its own nonprofit, the Internet

In the meantime...

Page 56: Minting Free Certificates for the Entire Web Let’s Encrypt · Let’s Encrypt: Began as a merger of EFF/UMich & Mozilla projects Is now housed in its own nonprofit, the Internet

Want to get hacking?

Spechttps://github.com/letsencrypt/acme-spec

Main Clienthttps://github.com/letsencrypt/letsencrypt

Serverhttps://github.com/letsencrypt/boulder

Page 57: Minting Free Certificates for the Entire Web Let’s Encrypt · Let’s Encrypt: Began as a merger of EFF/UMich & Mozilla projects Is now housed in its own nonprofit, the Internet

(And help us Encrypt the Web, entirely)

Page 58: Minting Free Certificates for the Entire Web Let’s Encrypt · Let’s Encrypt: Began as a merger of EFF/UMich & Mozilla projects Is now housed in its own nonprofit, the Internet

DEMO