Skip to main content

Minutes for HTTPBIS at IETF-88
minutes-88-httpbis-1

Meeting Minutes HTTP (httpbis) WG
Date and time 2013-11-05 01:40
Title Minutes for HTTPBIS at IETF-88
State Active
Other versions plain text
Last updated 2013-11-11

minutes-88-httpbis-1
# HTTPbis Working Group Minutes

IETF 88, Vancouver


## Monday Session

### HTTP/1.x

#### draft -24 change summary [Julian Reschke]


#### IETF LC summary

Julian says, that the issues received were mostly editorial issues. All those
issues received were addressed.

Julian notes that editorial feedback from APPSDIR and SECDIR, plus IANA
feedback; no individual issues raised. Unless new issues come up, we are ready
to move on in the process.

Barry notes that they did a short IETF LC, so that they would have comments for
the meeting. The IESG will get plenty of time, to avoid hasty and unfortunate
reviews. Mid-December telechat targeted. After that, RFCs! And life will be
good.

Mark confirms for Barry that there are no document references which would cause
an RFC editor blockage.

Mark also approved of Barry's bowtie


#### LC issue discussion / overview

(too many hashes already)

##### #507 SHOULD vs ought to on integer parsing

Julian recorded this as a design issue because this hadn't be considered.

Roy is OK with MUST on the content-length, that's a framing issue. p5 is
different because it is an optional feature and if this fails, the thing breaks.

Barry is concerned that even for an optional feature, this needs to be defined
so that it can work. He is also concerned about this turning into a security
problem (integer overflow, etc...)

Mark: describes a cached 206 and the potential consequences of overflow in that
case. Agreement that this might cause corruption.

Roy: OK with MUST

Conclusion: Make both MUST.

##### #519 conneg + proactive and reactive

Roy: Henry has studied the use of 300 and 406 status codes and found that they
aren't used. This doesn't mean that reactive conneg isn't used. Roy thinks that
Henry hasn't read and understood the argument, and is instead arguing from the
TAG. Roy doesn't see anything that he can fix.

Mark: Henry may be suffering a misaprehenshion that reactive == 300, when that
is made clear elsewhere in the spec.

Conclusion: close, no fix.

##### #432 cacheability of status codes

2^31 for max-age currently, why not 2^31-1. Do we leave this as-is and have
this special case (2^31 exactly), or do we reduce the limit, or do we leave the
max off.

Barry suggests that once you explain it, you can do anything.

Roy: this is so arbitrary. We don't know why.

Stuart Cheshire: it's MAX_INT but probably a mistake

Roy: is't not a mistake.

PHB: this is NaN for integers, maybe

Speculation ends.

Stuart: change it

Mark: changes cause interop problems

Conclusion: we'll explain, but leave unchanged.

##### On 2119 language

Mark doesn't want to rathole on this, but notes that HTTP is using its own
dialect and using it consistently.

Julian notes that the fact that this is the issue that is raised most often, so
the spec must be pretty good.

##### -25 drafts

As soon as possible. Then IESG comments. Then maybe another iteration. Plan is
to reach the RSE in January.

((what was the 2147483648 issue??))


#### Issue #512, APPSIDR review

There is a 2147483648 (2**31) maximum for the delta-second value. APPSDIR
wondered why this wasn't 2**31 - 1. As this is a historical value (apparently
for creating a kind of NaN value for integers), decision is to keep it (to
prevent breaking existing implementation), but add a note about it.

### HTTP/2.x

#### Seattle Interim meeting summary

https://github.com/http2/http2-spec/wiki/Implementations

#### Draft changes and open questions [Martin Thomson]

#### Issue 1: Upgrade Mechanism

Mark talks about Alt-Svc, Upgrade
(https://tools.ietf.org/html/draft-nottingham-httpbis-alt-svc-00)

Mike Bishop: whether we do this or not, it's not something for the spec. Talks
about Upgrade and the feature not well known where the server can advertise
support for HTTP/2.0 (as well as responding to client requests to upgrade).

Mark got the impression that there were lots of corner cases with Upgrade.

Mike: The performance problem is actually worse if you need to create a new
connection.

Mark: Caching the information avoids that problem.

Mike: That's possible in other cases.

Stuart: Modular design requires separation. Performance often requires that
those barriers are broken.

Mark: Breaking the strong tie between locator and server is desirable,
particularly because the HTTP/2.0 connection could be long lived and parking
connections long term can present a problem for servers who need to offload
clients.

Dan Druta: concerned about lack of transparency.

Will Chan: the client is able to choose

Ted Hardie: there are a lot of potential corner cases here, and despite a
desire to avoid corner cases, it might be that you haven't avoided those. Maybe
we can talk about alternative services that are delivered at the same host.
That makes a lot of the problems go away. Separating same-host and
different-host might reduce the complexity inherent in the solution.

Mark: just a small thing, security considerations.

Ted: distinction is important between certificate of www.example.com and
certificate that is valid for www.example.com

Mark: Still thinks that the connection characteristics will require that later
thing.

Ted: HTTP/2.0 only, which might require new URI scheme

Mark: you had me up until you said "new URI scheme"

Gabriel M: Agrees with Ted, the CDN issues are not specific to HTTP/2.0.
Concerned about putting risk on our current schedule. For just the in-the-clear
upgrade, this doesn't buy anything over the existing (i.e., Upgrade) solution
in the draft.

Mark: issues with upgrade: blocking while upgrade goes

Ted: two ports on the same host is not something that we worry about, it's the
different host scenarios that cause concerns.

Gabriel: Origin issues

Gabriel: maybe this is another option for dealing with discovery of HTTP/2.0,
so that you can avoid Upgrade

Will: Channelling jpinner: this isn't in major deployments yet, but would like
to restrict this to stuff that people use

Will: maybe something more like ALternate-Protocol (no host shift) is
interesting.

Will + Patrick McManus: Chrome and Firefox aren't interested in HTTP/2.0 in the
clear.

Rob Trace: Microsoft is interested in HTTP/2.0 in the clear.

Mark: we're not ripping Upgrade, though we may if it turns out to be poorly
implemented

Mark: question is whether we want to bring alt-svc (or a reduced form) into the
spec in order to gain experience with it

Patrick: There are some problems in the draft; Patrick offers to help with the
draft

Patrick: There are a ton of corner cases in Upgrade. Two objections are: it's
not going to work, and it's not going to be secure.

Eliot Lear: Questions relate to the caching of the response, in particularm
when you start going HTTP/2.0 directly on some port, what happens when you move
location.

Mark: if you detect a network change, then clear your cache

Julian: Theory on why clients do not implement Upgrade: on other clients it
requires writing both HTTP/1.1 and HTTP/2.0 both, which for testing clients is
a big burden.

Roberto: this affects both HTTP specs, and it makes the most sense as a
standalone. Maybe you want to downgrade from HTTP/2.0 to HTTP/1.1

Mark: preparing for an adoption hum

Ted: maybe revise before continuing,

Mark: proposes that he and Patrick revise the doc based on the discussion and
the editors will add a reference to the spec for that.

Mark: call for input from implementers to determine if it is implementable and
addresses the issues

#### Issue 270: Priority Levelling

Talked about this lots. Might have to delay this one.

Martin: propose that we move this faster

Will: wanted to collect data that provides justification for the complexity;
unable to do this because SPDY/4 is vapourware

Mark: we need to get this soon, maybe we ship without a fix

Roberto: maybe an educated guess at what is best is better than nothing

#### Issue 95: Frame Type Extensibility

Martin: Issues around negotiation of extensions

Roberto: we want to be able to experiment, but we don't know about what those
experiments might look like

#### Issue 292: Cookie Crumbing

Mike: James Snell had a proposal around this

Mark: cookies were always special fro the outset, but we never documented it

Mark: some people didn't want to do this, but he wasn't convinced by those
arguments

Roberto: doesn't like NULL being treated specially

Mike: intermediaries might reorder

Martin: we can require that intermediaries preserve order

Roberto: it's easy, you decompress, then compress, but ensure that you compress
in order

Julian: why?

Mark: nulls are being used to concatenate headers into a single header

Roberto: nulls were one way to preserve order, double toggle ensures that you
can always control the order that headers are emitted by the decompressor

Roberto: if we do nulls, that shouldn't be a compressor problem

Roberto: we aren't likely to get any more data on this, so we should decide

Mark: AD?

Barry: are you assuming that cookies will be used the same way in HTTP/2.0 as
one [yes, transition]

Mark: maybe we should have a chat with Adam Barth

#### Issue 266: Strings in the compressor should be huffman encoded

302 to #304

Roberto: I added Huffman, but it's not negotiated and the way we do that is ALPN

Mark: why does this need to be negotiated?

Roberto: negotiation saves you from complexity

Martin: plunge the knife in and we can see if the patient squeals too loudly

Conclusion: plunge the knife in

#### Issue 216: Alternate Reference Sets

Herve':

Roberto: simple and better than the original proposal and it seems to
accomplish the goal

Mark: let's do it


## Tuesday Session

### ALPN review [Stephan Friedl and Andrei Popov]

Stephen Friedl presenting

WG member are encouraged to review and provide feedback.

Wan-Teh Chang: This won't work with session resumption.

Stephen Friedl: It will not work unless you renegotiate.

EKR: You can't change the cert and ALPN codepoints, but you can resume.

Michael Tuexun: Is there a reason you don't provide this for a general
mechanism?

SF: You need to register the name.

MT: I want some binary data in there, is there a reason you did it this way?

SF: We did it because the port number is not reasonable to have different

Roberto Peon: This is there to negotiate the protocol, of anything else would
be very strange.

Mike Bishop: There is another extension that can be used for passing arbitrary
application data, but I cannot recall the RFC number

(RFC 4680)

Sean Turner: If we're going to make it expert review, should it be only
security or only apps or some combination?

Yoav Nir: Expert review should be in security because it can be used for other
protocols.

Eliot Lear: When my mother offered chocolate or vanilla, I always took both.

Mark Nottingham: I was concerned about how registration works, but I think
we're ok there now.

### HPACK review [Roberto Peon]

Actions by the Security folk to review and analyze. Mark and Stephen to discuss
how to get adequate review, now that the documents have settled down.

EKR: Is it correct that the attack is effectively a brute force attack if you
can't guess the secret. Are you saying that is weaker now?

Roberto Peon: I'm saying that was weaker when you are using a stream compressor.

EKR: The minute you guess the entire thing you're done.

EKR: You are assuming the secret is a high-entropy value.

Stephen Farrel: Do we know someone good at analyzing it?

RP: There are a few people have looked into it. It was not about HPACK, but on
the general use of Huffman.

Stephen Farrell: What is the timeframe that an analysis is useful?

RP: It's always easy to compress nothing.

NM: For the WG, we wanted to finish this up by next year, and we're on track.
We are getting implementation experience. If we get this done by middle of next
year, and it explodes, then we'll have problems. But this is something we can
get fixed with HTTP/2.1 or its successor. This protocol needs to be easier to
version.

Stephen Farrel: So we really want analysis within the next six months.

Yoav Nir: This table needs to be in both the client and server, and needs to be
rather large. It's possible that the table might not be optimal in the future.

RP: We could just go with plaintext encoding, or we use another table or
version the protocol. We know that it's possible to transmit a new table, but
we're not sure it's really worhtwhile right now.

EKR: On the threat model, most of the chosen plaintext attacks have exploited
some functionality of protocol to repeated induce response. As you suggest,
cookies could use arbitrary entropy. What we need to be observant about is
other forms of data that are lower entropy that you can get clients to send
repeatedly, like credit cards, passwords, and PINs.

RP: I agree the smaller the thing the easier it is. If I have to guess a PIN,
then I think their security model is already broken.

EKR: We are changing the security model somewhat.

NM: I think it's worth explain our proposal on cookie crumbs.

RP: We're looking at breaking cookies, but it's not clear this is making things
easier or harder. If the encoder is naive and puts a small secret on its own,
then you've reduced the total secrecy.

Jim Rosekind: IFirst interesting to note that the uncompressed case calls for
the client to ask repeatedly, and some servers will get pissed off about that.

JR: Second thought is about using the static table. If the result took a data
set, and you run this numerous times and analyse the space you actually need to
explore.

RP: That was something the paper I talked about earlier, one could pare down
the state space based on the bits on the wire. It was a very small reduction --
it was still exponential.

Stephen Farrel:  I'm wondering if the headers would be impacted by this.
RP: One of the things about having a compressor like this is people might use
larger secrets, because the cost is less.

Paul Hoffman: I think you'll need to solicit for those reviews outside of just
security.

Stephen Farrel: Between us we should try to find some way of getting review.

Lucy Lynch: There are a lot of people around that have experience in this, but
not exactly in the same problem space.

Jim Rosekind: when you look at this pseudo random cookies that actually use a
pattern. Using a greater amount of entropy can reduce the benefit from huffman
encoding.

RP: With all due respect, you're wrong (-: This is generally base64 encoding,
so it's already reduced.

JR: You're right that is using a reduced input set, but the tables might not
favor some of the inputs.

YN: I thought one of the goals is to change to use binary encodings.

RP: We can't quite do that because of interop problems with 1.1

RP: Right now, the Huffman tables are different for requests and responses. The
differences are noticable, and we've have talked about using a third table for
cookies, but we haven't seen a good benefit there. We haven't actually seen the
compressiong being larger so far.

JR: It is much more plausible if you're using ASCII characters in unif ways,
but once you bring in the english language it gets easier.

RP: I agree but we haven't tried that yet for complexity reasons. We haven't
made an issue for that yet.

Martin Thomson: There's plenty of places that such things show up, not just
cookies.

RP: Part of the problem for attackers is you don't know where the secret is.

### Encryption and HTTP/2 + Opportunistic Encryption

 Mark Nottingham presenting

** NOTE: slides are _NOT_ on the materials page**

Ted Hardie: One of the big questiosn from yesterday was why would anyone want
an HTTP/2 connection that was plaintext. If we can go from two states to two by
eliminating the cleartext then we're in a better place.

#### Alternate Proposal for Discovery

Paul Hoffman presenting

Use DNS to determine if the server for http: likely has a TLS equivalent,
instead of using HTTP headers. The two are not necssarily orthogonal. This is a
mechanism difference, not a conceptual difference.

Phil Haram-Baker: In my proposal, you can find the information in DNS because
that's what DNS is for. The guidance could be used for multiple services.

MN: And that's why we described this in two separate layers. One is what to do,
the other is how to figure out if you can.

RP: We experimented with something like this a long time ago, and I'm not
interested in hearing about the mechanisms, but I'm much more interested in
knowing if this increases our overal security. I'm not sure this actually
increases the aggregate security. This third level might actually decrease
security because it confuses users. It might make people thing that
opportunistic encryption is good enough when it actually isn't. I used to think
this was a good idea.

William Chan: I talked to various people on the Chrome team, and there some
concerned about the relaxed mode. We're more interested in doing authentication
always, even for HTTP: I am quite excited for encryptiong HTTP URIs.

NM: I would love to have the authentication. If we can good get good
deployment, then it's great. From a se

EL: Concerned this introduces a new form of MitM. If yu have this header, that
now says you can use relaxed, a MITM can insert the header or replace a 301
with a header, and the server thinks it has an encrypted tab but is really
sending data through the MITM.

EL: Why would the attacker not just proxy HTTP, and I'm just saying this is
another avenue. I'm also not sure we understand the consequences of adding a
new primative about saying "don't bother to verify the certificate" and
confusion about unathenticated encryption versus authenticated encryption.

Salvatore ??: I am worried we are putting to many things together, and changing
things on the fly. It might be too much to manage.

NM: I think this is been kind of implicit in everything we do, because we might
be switching to a new connection protocol.

YN: I think there is value protecting against passive attacks. Active attacks
are 10x more expensive. I don't see much point in having authentication for
HTTP because we have HTTPS. Having encryptiong wihtout encryption has some
value, as long as user-agents don't say you've got protection.

Larry Masinter: I was thinking about cases where encryption might introduce
excessive overhead, and one is delivery of video. There is value in encrypting
the headers, though.

MN: This is a negotiation -- the client can request it, and the server can
offer it.

RP: It is incorrect to say there is not benefit to encrypting video. It is
useful for the content provider and for the distributer.

Tim Bray: I tell most people to just use TLS. For you information, the
arguments against encryption are becoming less and less convincing. I think we
should keep pushing the rock uphill because we're starting to win.

MN: One of the conclusions we have is whether server authentication needs to be
lumped in. Does that mean we push everyone to just use HTTPS, or is there still
benefit to HTTP.

Rohan Mahy: A lot of concerns are about what the user experience. To me it's
clear -- if you are doing HTTPS, then here's the list of things to get the
green locked icon. if it's HTTP, then there's no immediate indication. You just
do it, and not tell enybody about it in the default case.

NM: By the way, that's what's in the draft.

Alissa Cooper: We should think of this as a gift to users (-:

Ted Hardie: I like the idea of not giving the browesr a signal of opportunisitc
encryption. But users are not the only side in this. There are classes of
software that might provide a false sense of security. We can get a benefit,
but it might cost us some authenticated encryption, and that is a serious
problem. I think we should just do HTTP/2.o is always authenticated encryption.
If we can't get to server authentication always, then make it hard or hidden to
do opportunistic.

Brian Dixon: From the perspective of opportunistic, it should be acceptable to
use self-signed, but still require authentication. This might lower the bar,
but this might still be of benefit.

Patrick McMannus: People don't always have all the information about what the
protection there is if we rely on HTTPS only, so having encryption always is a
good thing. I think it's better to require authenticated, since we really just
get one chance. But if all we can really do is HTTP-relaxed, then it's still
moving the bar forward.

??: Most browsrs give you a place to enter certain configuration options on a
per-host basis. While I don't think we should expose this to users, but I think
there is benefit.

Johan ??: I'm a little skeptical of doing encryption at this level. Especialy
as it plays with DNS.

Richard Barnes: Unauthenticated encryption is the new plaintext. This means
that the worst case is that you are protected from passive attacks. We should
shoot for authenticated encryption. If our goal is to increase the number of
places that authentication and integrity protection is increased, I'm not sure
these goals get us there. If we require authentication, it means people need to
get the proper credentials at scale, but we're not there right now.

Christian Huitema: I am skeptical about the amount of protection you really
get. I am concerned about the case where we first send the request in
cleartext, with all of the potential traffic analisys information exposed, is
not providing any benefit. We should think about the security considerations
about this, and maybe have other ways of determining this information, or
require another trip in order.

NM: We did talk about this in Seattle, and if people are going to do this for
security purposes, then you would block this data. Such as sending a very
minimal amount of infomration in an exloratory request or use DNS.

RP: I want to point out why people don't deploy HTTPS. It's not because of the
cost of getting certs, but because HTTPS is significantly slower. People doing
commerce are very interested in performance, and are unlikely to deploy unless
HTTP2/ with TLS is as fast or faster. Our experimentation at Google has shown
that HTTPS is as fast or faster for a large number of cases.

RP: < note taker missed it >

Stephen Friedl: I agree with Roberto. I don't trust locks on my browsers, and
heaven forbid I explain to laymen. The only way to do this is HTTPS (with
authentication) only. No more HTTP. And we should be rigorous about it. I am in
the camp to push everything to HTTPS except for the small set of cases where it
doesn't make sense. For ALPN, we should be more formal of how to register the
types.

Rob Trace: I would like to have a secure web, but there is a long list of
corner cases where it's applicable to have HTTP plaintext. It's hard to claim
this is a security feature, since you still have to treat the content in and
out as insecure.

EKR: Is HTTP/2-over-TLS only still on the table?

MN: It appears that the position of HTTP/2. over only TLS is too extreme.

EKR: Doing nothing is stupid. What I think we're arguing about is whether
having the relaxed version lowers the bar too much. I think determining how
many would do the right thing, or at least do opportunistic is tricky and we
don't know. I think opportunistic TLS is worth doing.

MN: People have expressed concern about confusing people about the security
state, and I don't think that will be the case. Server admins will open a
browser and look for the indicators. If there are none, then they don't think
they have any protection. As for commernce, I'm not sure that's an important
thing anymore. What's important is what happens out-of-the-box. If any
encryption requires doing more than installing the software then people won't
be doing it most times.

EL: One of the thigns I was thinking about was to do the discovery inline
instead of a referall mechanisms. I think having all the security and HTTP
people helps informs the discussion for perpass. A few people made some
economic assertions, these are interesting questions for researchers to look
into. Also, the IRTF meeting is discussing how to get researchers and those
willing to pay for it together.

PHB: The original goal for HTTPS was to have the same level of trust for people
buying things online as buying things in a store. So not turning on the lock if
you haven't authenticated is good. Deploying opportunistic TLS increases the
work attacks have to do which is good. But for the other attacks, where someone
could downgrade someone from HTTP/2 to HTTP/1.1. Do you really want to
re-encrypt YouTube vidoes each time?

AUDIENCE: YES

PHB: Once you get past that, you are really talking about doing strong crypto
or crappy crypto. You could probably collapse the work factors to one or two
choices.

Keith Moore: The decision this WG is making has a long term effect. I think we
need to look beyond the current threat or the past threats. Right now active
attacks are harder than passive attacks. But if a passive attack is feasible,
then an active attack is also feasible. I'm not sure there's a benefit to do
opportunistic because you can be downgraded, unless you can absolutely prevent
it.

TH: What Keith said, but also this is an estimation problem (as EKR pointed
out). We are taking the current state and adding opportunistic encryption,
which prevents FireSheep. Does adding opportunistic reduce the number of times
people get good certs?

EKR: If we provide the unauth mechanism, [EKR line noise]

TH: If we ask "should HTTP/2.0 be TLS-only?" we might come to a different
conclusion.

RP: My definition of commerce might be very different of yours. Pintrest
doesn't actually sell anything, but they still add value. Commerce doesn't
always mean adding things to a cart and checking out. Pintrest doesn't have a
competitor right now, but latency matters. Second, it is far easier to add
authentication later than to remove unauthentication later. If we weaken it by
adding this third thing it will be hard to fix.

??: Trying to protect against just the passive attack is silly. One thing is
very clear is that if I have a HTTP URI, I want to try to use it in a secure
way. If I use it in a secure way, I want to really be secure.

MN: If we did do opportunistic, do you want to see mitigation of downgrade
attack. [Yes]

Stephen Farrel: I think there's value in trying to mitigate the passive attack,
so I think the do nothing option is really stupid. Trying to insist on HTTPS
everywhere is not feasible or scalable. I think the third option is the right
approach.

MN: I think we have an opportunity to improve performance with HTTP/2

Will Chan: One barrier I've heard is about mixed content. Even though I'm a big
fan of telling people to just use HTTPS, but I need third-party ads and what do
I do? While I want to got HTTPS only, I think there's still a lot of benefit
because it reduces the barrier of entry.

EKR: I think you should consider option 0, and you consider TLS for HTTP/2
always. I think we should do something, and having some option for the server
to indicate it only wants to do the authenticated mode. Is it ok to have mixed
content? We need to consider the policies that are involved in these cases.

PHB: I think a lot of the argument is over a choice that doesn't exist. One is
whether you have authenticated cert or not, since the IETF doesn't strongly
define what authenticated really means. The only choice that can be made is
whether the client can be allowed to turn off its root criteria.

Roy Fielding: I don't think you can require HTTP/2 to be encrypted always,
given all the places that HTTP servers are deployed. I could get behind that if
you use HTTP you use a secure transport protocol, ether it's TLS or SSH or
something. I don't think it's a technical argument, but there is a social
argument that you can and probably should make.

#### What does the WG Want?

Mark Bishop: Just want to be clear, that for 2 and 3 that there's an option to
go better, but no requirement.

LM: One considerations is if users would be presented with information about
those connections. Which of these include those dialogs/information? And what
is the performance impact?

Dixon: To clarify server auth, it should include both CA-based and DANE-based.

Rohan Mahy: I don't know what #3 means with the word somehow, especially in a
technical context.

Gabriel Montenago: Remember what the desired final state is to increase the use
of valid TLS. Where is that in these choices? I think plaintext has an
important place in the world.

Barry Leiba: You should be looking for who cannot live with some of these.

0) Don't know (yet)

[strong humms for can't live with]

1) Do nothing - hope that hTTPS gets more adoption

[strong humms for can't live with]

2) Opportunistic encryption w/o server authentication for HTTP URIs - just for
passive attacks

[ less strong for can't live with ]

3) Opportunistic encryption with server authentication AND downgrade protection
(somehow) for HTTP URIs; no requirement upon HTTP/2.0 when not available

[ weakest for can't live with ]

4) Requre secure underlying protocol for HTTP/2.0 (at least in web browsing)

[ weaker for can't live with ]