SSL/TLS and HTTPS

Note: These lecture notes were slightly modified from the ones posted on the 6.858 course website from 2014.

This lecture is about two related topics:

Symmetric vs. asymmetric encryption

Recall: two kinds of encryption schemes.

Kerberos

Why is Kerberos not enough?

Alternative plan: Use public key encryption

Good properties of this strawman protocol:

What goes wrong with this strawman?

Hard problem: what if neither computer knows each other's public key?

Why might certificates be better than Kerberos?

Plan for securing web browsers: HTTPS

How can this plan go wrong?

1 (A) Cryptography

There have been some attacks on the cryptographic parts of SSL/TLS.

2 (B) Authenticating the server

Adversary may be able to obtain a certificate for someone else's name.

How to deal with compromised certificate (e.g., invalid cert or stolen key)?

Users ignore certificate mismatch errors.

What's the risk of a user accepting an invalid certificate?

3 (B) Mixing HTTP and HTTPS content

4 (B) Protecting cookies

5 (C) Users directly entering credentials

ForceHTTPS

How does ForceHTTPS (this paper) address some of these problems?

What problems does ForceHTTPS solve?

Is this really necessary? Can we just only use HTTPS, set Secure cookies, etc?

Why not just turn on ForceHTTPS for everyone?

Implementing ForceHTTPS

Current status of ForceHTTPS

Another recent experiment in this space: HTTPS-Everywhere.

Other ways to address problems in SSL/TLS

Other references