Private browsing modes

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

Private browsing: goal, definitions, threat models

What is the goal of privacy?

What do the browsers mean by "private browsing"?

Threat 1: Local attacker

What kinds of persistent client-side state can a private session leak? (By persistent, we mean "stored on the local disk.")

  1. JavaScript-accessible state: Cookies, DOM storage
  2. Browser cache
  3. History of visited addresses
  4. Configuration state: New client certificates, updates to saved password database, bookmarks
  5. Downloaded files
  6. New plugins/browser extensions

...and:

Demo:

    Open Firefox in Private Browsing Mode
    Visit http://pdos.csail.mit.edu/
    sudo gcore $(pgrep firefox)
    strings core.* | grep -i pdos

      // -e l: Look for string using the
      //       character encoding 16-bit
      //       little-endian.
      // -a:   Scan all of the file.
      // -t:   Print the offset within
      //       the file.

Data lifetime is a broader problem than just private browsing!

Demo:

     cat memclear.c
     cat secret.txt
     make memclear
     ./memclear &
     sudo gcore $(pgrep memclear)
     strings core.* | grep secret

Where does data persist?

How could an attacker get a copy of leftover data?

How can we deal with the data lifetime problems?

Threat 2: Web attacker

Defending against a web attacker is very difficult!

Browser fingerprinting demo:

 -  Open Chrome, go to http://panopticlick.eff.org/
 -  Open the same web site in private
          browsing mode.

Approaches

How can we provide stronger guarantees for private browsing? (Let's ignore IP address privacy for now, or assume that users employ Tor.)

Are there ways to de-anonymize a user who employs these approaches?

Why do browsers implement their own private browsing support?

How do we categorize those types of state? The paper says that we should think about who initiated the state change (Section 2.1).

  1. Initiated by web site, no user interaction: cookies, history, cache.
  2. Initiated by web site, requires user interaction: client certificates, saved passwords.
  3. Initiated by user: bookmarks, file downloads.
  4. Unrelated to a session: Browser updates, certificate revocation list updates.

What do browsers actually implement?

Q&A:

Browser extensions

Browser extensions and plugins are special.

Current private browsing modes

The paper was written in 2010---what's the current state of private browsing?