On 14/10/15 21:42, Martin Thomson wrote:
> On 14 October 2015 at 13:29, David Benjamin <david...@chromium.org> wrote:
>> If you really absolutely must support interleave and can't avoid it, I think
>> it being allowed everywhere except between CCS and Finished is probably the
>> closest you can get to coherent semantics. "Coherent" here is, of course,
>> all relative since renego is involved.
> 
> I think that it needs to be more than that.  I would say:
> 
> 1. You should not interleave data with handshake messages from the same 
> flight.
> 2. You should not report any change to handshake status until the
> renegotiation is complete.  That means no callbacks/events about new
> peer certificates, or anything of that nature until you have received
> and validated the Finished.  You would have to exercise caution here
> for the callbacks that are necessary during the process, like the
> "please choose a certificate and private key to use" callback on
> either side.
> 
> If you can somehow manage to do all of that, then you might be able
> get away with not halting progress entirely.  Because - as far as the
> application is concerned - application data is sent as though it were
> before the renegotiation.  In essence, you are keeping the application
> ignorant of any changes until the whole process is over.
> 
> I've heard it recommended that you add other stipulations, such as

That would be very challenging to implement. Almost certainly not
possible for the stable released versions. I would hesitate to do so for
the new development version too without explicit published advice in the
form of an RFC/errata...it would add significant complexity.

It seems my options in reality are:

1) Allow interleaved data everywhere except between CCS and Finished, as
per the (hopelessly unclear) RFC. This would leave us conformant, would
solve our interoperability problems, but is a "highly dangerous idea"
according to your advice.

or

2) Leave things as they are now where we abort on interleaved
application data. This would leave us unconformant and with an
interoperability problem which is causing real issues for users (who
will point the finger at us for failing to fix it).

"Rock" meet "hard place". :-(

Matt

_______________________________________________
TLS mailing list
TLS@ietf.org
https://www.ietf.org/mailman/listinfo/tls

Reply via email to