- From: John Franks <john@math.nwu.edu>
- Date: Tue, 10 Sep 1996 08:09:37 -0500 (CDT)
- To: "John C. Mallery" <jcma@ai.mit.edu>
- Cc: Larry Masinter <masinter@parc.xerox.com>, http-wg%cuckoo.hpl.hp.com@hplb.hpl.hp.com
On Sun, 8 Sep 1996, John C. Mallery wrote:
> My main complaint about digest authentication is that it should
> not just authenticate the user but also authenticate the entire http
> transaction. The current specification is vulnerable to man in the middle
> attacks.
>
> This can be fixed by adding the following two items:
>
> 1. a digest header on the server responses that hashes the request,
> the secret etc with the response code.
I am not sure if you intended this header to include a hash of the
returned entity-body. If not, it is not clear what the point of
authenticating the URI and headers is if the entity body could have
been changed.
If you meant to include the entity-body in the hash then the header
you want exists in the spec. It is the Authentication-Info header of
section 2.1.3. It includes an "entity-digest" as described below.
This header is optional because many valid uses of authentication
don't need it and don't want the overhead of calculating the digest of
every document.
>
> 2. digest headers whenever an entity is transfered in this
> mode so we know we're really getting the right bits.
This is the function of the "entity-info" part of the entity-digest.
Digesting headers is tricky because caches may change headers, but
the Date, Content-type, Content-length, Content-encoding, Last-mod-date,
and Expiration-date are not supposed to be altered by proxies and
are all included.
Here is the BNF for the entity-digest from section 2.1.3. H(A1) is
the shared secret -- a digest of password, username and realm.
entity-digest = <"> KD (H(A1), unquoted nonce-value ":" Method ":"
date ":" entity-info ":" H(entity-body)) <">
; format is <"> *LHEX <">
date = = rfc1123-date ; see section 3.3.1 of [2]
entity-info = H(
digest-uri-value ":"
media-type ":" ; Content-type, see section 3.7 of [2]
*DIGIT ":" ; Content length, see 10.12 of [2]
content-coding ":" ; Content-encoding, see 3.5 of [2]
last-modified ":" ; last modified date, see 10.25 of [2]
expires ; expiration date; see 10.19 of [2]
)
last-modified = rfc1123-date ; see section 3.3.1 of [2]
expires = rfc1123-date
John Franks Dept of Math. Northwestern University
john@math.nwu.edu
Received on Tuesday, 10 September 1996 06:15:14 UTC