[doseta-discuss] HTTP use cases for DOSETA

Mark Nottingham mnot at mnot.net
Thu Apr 28 17:58:59 PDT 2011


I thought it'd be useful to jot down a few thoughts / references for how HTTP folks might want to use something like DOSETA, to inform the requirements.


1. Detecting content changes

Some folks (often mobile networks, ISPs, "free" internet access providers and enterprises) interpose intercepting proxies that change content; e.g., they insert ads, strip content, transcode content with the intent of making it device-friendly, etc. 

This concerns browser vendors as well as site operators, as the content isn't being presented as intended, and it's an attack vector.

By signing responses (including the body and certain headers, e.g., Content-Type), browsers can detect such changes, and either inform the user or refuse to display the content (perhaps based upon configuration).

To make this workable, sites would need to be able to declare that all of their content is signed, so that hostile intermediaries couldn't overcome the mechanism by simply stripping the signatures. This could be done in DNS or in a HTTPS-hosted well-known URI (RFC5785).

Potential problems include the overhead of signing responses on-the-fly, and the need to buffer large, dynamic responses to sign them. The latter issue could be overcome by appending the signature in a HTTP trailer (although they can be legitimately stripped, so it's not perfect), or by allowing a signature to NOT sign the body (or only a portion of it) explicitly, so that the response signature is still in place, just incomplete.


1a. Verifying caching policy

Similarly, it's interesting to sign caching-related headers (Date, Cache-Control and Expires) to be able to verify that the server's expressed caching policy has been honoured by any intermediaries. 


2. Detecting corruption

A more pedestrian use case is detecting unintentionally corrupted responses.


3. Authenticating the content source

AIUI Bill Burke's use case is to sign large downloads so that clients (in this case, a software update process) can verify their source, even when hosted on a different server. 

http://www.ietf.org/id/draft-burke-content-signature-00.txt

The difference here is that the signature is NOT generated by the server at runtime. 


4. Message archiving

It would be useful in some cases (e.g., legal, archive.org) to be able to archive a HTTP message and use signatures to verify its source. This might include signatures generated both by the origin server and by the archive.


See also:
  http://blog.jclark.com/2007/10/http-response-signing-abstract-model.html
  http://blog.jclark.com/2007/10/http-what-to-sign.html
  http://blog.jclark.com/2007/10/http-response-signing-strawman.html

Cheers,


--
Mark Nottingham   http://www.mnot.net/






More information about the doseta-discuss mailing list