Draft: draft-ietf-ohai-ohttp

Commentary: LGTM with suggestions ( two steps forward , one step back otherwise ) .
The identity of an oblivious request resource.  This might include
some information about oblivious target resources that the
oblivious request resource supports.
The identity of an oblivious request resource.  This might include
some information about what oblivious target resources the
oblivious request resource supports.
This information allows the client to make a request of an oblivious
target resource without that resource having only a limited ability
to correlate that request with the client IP or other requests that
the client might make to that server.
This information allows the client to make a request of an oblivious
target resource with that resource having only a limited ability to
correlate that request with the client IP or other requests that the
client might make to that server.
Oblivious HTTP has limited applicability.  Many uses of HTTP benefit
from being able to carry state between requests, such as with cookies
(RFC6265), authentication (Section 11 of HTTP), or even alternative
services (RFC7838).  Oblivious HTTP seeks to prevent this sort of
linkage, which requires that applications not carry state between
requests.
Oblivious HTTP is primarily useful where privacy risks associated
with possible stateful treatment of requests are sufficiently
negative that the cost of deploying this protocol can be justified.
Oblivious HTTP is simpler and less costly than more robust systems,
like Prio (PRIO) or Tor (Dingledine2004), which can provide stronger
guarantees at higher operational costs.
Oblivious HTTP has limited applicability.  Many uses of HTTP benefit
from being able to carry state between requests, such as with cookies
(RFC6265), authentication (Section 11 of HTTP), or even alternative
services (RFC7838).  Oblivious HTTP removes linkage at the transport
layer, which must be used in conjunction with applications that do
not carry state between requests.
Oblivious HTTP is primarily useful where privacy risks associated
with possible stateful treatment of requests are sufficiently large
that the cost of deploying this protocol can be justified.  Oblivious
HTTP is simpler and less costly than more robust systems, like Prio
(PRIO) or Tor (Dingledine2004), which can provide stronger guarantees
at higher operational costs.
A client needs to acquire information about the key configuration of
the oblivious request resource in order to send encapsulated
requests.
In order to ensure that clients do not encapsulate messages that
other entities can intercept, the key configuration MUST be
authenticated and have integrity protection.
This document describes the "application/ohttp-keys" media type; see
ohttp-keys.  This media type might be used, for example with HTTPS,
as part of a system for configuring or discovering key
configurations.  Note however that such a system needs to consider
the potential for key configuration to be used to compromise client
privacy; see privacy.
Specifying a format for expressing the information a client needs to
construct an encapsulated request ensures that different client
implementations can be configured in the same way.  This also enables
advertising key configurations in a consistent format.
A client needs to acquire information about the key configuration of
the oblivious request resource in order to send encapsulated
requests.  In order to ensure that clients do not encapsulate
messages that other entities can intercept, the key configuration
MUST be authenticated and have integrity protection.
This document does not define how that acquisition occurs.  However,
in order to help facilitate interoperability, it does specify a
format for the keys.  This ensures that different client
implementations can be configured in the same way and also enables
advertising key configurations in a consistent format.  This format
might be used, for example with HTTPS, as part of a system for
configuring or discovering key configurations.  Note however that
such a system needs to consider the potential for key configuration
to be used to compromise client privacy; see privacy.
In order to ensure this, the client selects a proxy (that serves the
oblivious proxy resource) that it trusts will protect this
information by forwarding the encapsulated request and response
without passing the server (that serves the oblivious request
resource).
In order to ensure this, the client selects a proxy (that serves the
oblivious proxy resource) that it trusts will protect this
information by forwarding the encapsulated request and response
without passing it to the server (that serves the oblivious request
resource).