Here is preliminary minutes of the TCPINC session in IETF 93, Prague.
If there is anything to fix, send me email, and thanks for Yoav Nir
for them.
----------------------------------------------------------------------
Notes from TCPINC
=================
Projector isn't working, but that's find: there are no slides.
--
tcpcrypt progress (Andrea)
Been taking feedback. Reworked to move to TLV. Submitted a new draft
(with TLV). Not MAC-ing the header. Doing Diffie-Hellman. We've always
had an option to disable tcpcrypt when TLS is present.
--
TLS-based solution (Eric)
Most tried to make the draft clearer. No technical changes other than
mandating session hash. Have a very early prototype. Not ready to show
yet, but nothing surprising found during implementation.
--
Tero: How to go forward? There was a discussion on the mailing list.
The working group prefers option #1: adopt both and see what happens.
By IETF94 we need a full (though not final) specification
- for tcpcrypt it means including all the changes from WG input
- for TLS means a complete profile
For both: need an implementation that the implementers claim matches
the spec.
If both deliver: we do a consensus call. No consensus? Coin toss.
Consensus on this plan?
--
Jan Seedorf: Surprised that we're considering closing the WG when we
think this is important for tackling pervasive
monitoring.
David Mazieres: Seems fine for what we have to do. Should have an
earlier deadline for feedback so that we can have some
time for impleemntation
ekr: Does not seem crazy. probably should be lenient on evaluating the
implementation for matching the spec. Don't want to see us
falling back on rough consensus
Ted Hardie: Perhaps test for consensus now and skip all this. If we
are going to do this, adopt a blank sheet of paper. It's
too important to let it drop. Shouldn't die over a process
point.
Marcelo: We've tried, but it doesn't seem to work. How will a blank
sheet help? It's always "do TLS" or "do not-TLS".
Ted: What you are describing is that we need to move forward with one
of the proposals. Either one is a starting point for the group to
work. They might change within the process. I really don't want
us to give up on this.
Brian Trammell: Coin toss not great. Perhaps we need to adopt both for
different use cases...
David Mazieres: Tcpcrypt is good for people who can't stick a STARTTLS
message in their (legacy?) protocol. While the
TLS-based method could be good for other cases.
Tcpcrypt is great if it's inside the kernel. Eric is
not going to like it, but the draft should either be
referencing TLS or should be self-contained. Then
TCP-use-TLS can be signalled by a bit.
Tim Sheppard: The key architectural difference vanished when they
decided on TLV. I think you should all look at the TLV
encoding from TLS and use that. Then they would be even
closer. I would like to understand why the proposals
haven't moved entirely close together. I think they
could have two implementation style stories, but they
would interoperate because the bits on the wire are the
same.
David: I wanted to use the TLS encoding on the wire but our key
exchange. There are several things we care about in the key
exchange protocol: it's simpler to prove secure. If the WG
instructs us to use the other key exchange, we can live with
that.
Brian Trammell: there is wilingness to move forward/around. Should
make a consensus call here.
Mirja: Perhaps adopt both and publish both as experimental.
ekr: I'm good.
Matt Matthis: I had a colleague who went through adding TLS to an old
protocol. This is very hard, because TLS makes
assumptions. Think about that.
ekr: Viable to do a library shim option. Our first cut is a kernel
proxy.
Martin: Can do a consensus call now and continue on the ML. If not,
kick in this procedure.
Tero: OK.
- Option #A: tcpcrypt: (quite audible hum)
- Option #B: UseTLS: (also audible, slightly less)
- Option #C: both (considerably less)
Tero: we don't have a consensus now.
Marcelo: What are the fundamental differences.
Ted Hardie: What about change control? Change control usually shifts
to the IETF. The tcpcrypt team have some things they don't
like to lose. For the TLS proposal some changes rest with
the TLS group.
ekr: The entire benefit of UseTLS is that we re-use TLS. Hopefully the
TLS WG would be responsive, but that is our entire value
proposition.
Christian Huitema: I would like to see in a TLS proposal that a single
implementation can work for both regular TLS and
UseTLS.
Marcelo: So what features of tcpcrypt can you not do by profiling TLS?
(this is a "homework" assignment for the authors)
Tim Sheppard: Don't know what is going to be on that list, but knowing
what is going to be requested from the TLS WG would be
good.
David Mazieres: Some things are harder like using SYN packets for
session resumption. The methodology we're using for
tcpcrypt is different. Such as "make the security
proof easier". We have much less manpower, but we're
likely to come up with a different set of bugs.
tcpcrypt adds diversity.
Andrea: Tcpcrypt works on the first packet. lower latency. Question:
are the people against tcpcrypt like that because we're not
inheriting TLS?
Matt: It's more like a socket intercept rather than a tcp intercept.
That piece needs to be in the kernel. Everything else can be
outside the kernel.
Tich Salz (OpenSSL dev team): understand the risk of monoculture. Less
concerned about it in protocols. If all we need is to shim
it to the kernel, that's easy.
ekr: I'm not sure how much we want to get into technical fine points.
The only technical reason not to use the SYN-ACK is middlebox
friendliness - it doesn't look like TLS. In terms of latency it's
comparable, because 1.3 is more aggressive. We originally wanted
a socket intercept. We ended up with a packet intercept.
Tommy Pauly: If you do something like TFO would there be any
difference?
???: the TFO has to happen first.
ekr: in 1.2 the client can send in round 2
Lars: I asked netapp guys which they preferred, and they preferred
tcpcrypt. Our product runs in kernel space and we are not going
to put TLS in the kernel.
Bryan Ford: Perhaps have one protocol with two ways to start it?
Brian Trammel: Why no? There is a whole wisdom that says don't design
new crypto. I suggest that we're working as a group
that has adopted a blank slate and has a design team
working.
Bob Briscoe: Latency is very important. If you make it slow, nobody
will deploy. Tcpcrypt is more open for changes, whereas
TLS is constrained by the other TLS uses.
Tero: Can make changes to either after adoption. Both can be finish.
If we have TFO things should end in one round-trip.
Marcelo: You think there is a way to do it for tcpcrypt?
Bob Briscoe: I vote tcpcrypt, because it's difficult to change TLS
Tim S: The proposal is not to put TLS in the kernel: we don't have to
support TLS.
Lars: We don't know how profiled it would be. We don't care about
latency, but I am for tcpcrypt because it's a known quantity.
Martin Thomson: Anything TLS can do, tcpcrypt can do and vice versa.
tcpcrypt is untested but has less baggage.
David M: Tcpcrypt is more nimble. Not constrained by the structure of
the TLS protocol.
Bob Briscoe: there is a bunch of hardware that recognizes TLS.
Tero: It doesn't recognize 1.3, which is what we're likely to
recommend.
ekr: Either you know tcpinc is enabled on the other side, or you
don't. You can't just send handshake and hope the other side
understands.
Jana Ayengar: Since we're doing TLV, we have the same issues. Even
with TFO you need to negotiate capability first, and
both have this issue.
tcpcrypt is allowed to send data on the SYN-ACK, whereas TLS has to
wait for the ACK.
ekr: You don't have to assume the client speaks first. The only reason
to have the client speak first is friendliness to middleboxes.
Mirja: You can send data in the first round trip. I hummed for #C but
I'm in favor of adopting tcpcrypt right now. Consensus call for
tcpcrypt right now and maybe TLS later?
Ted: It's fine to run a consensus call again. It's different.
ekr: This is silly. Once we adopt something we go with that something.
David Mazieres: I think we're willing to make changes, so it's not
that silly.
Aaron Falk: A lot of interest in making forward progress. Should ask
about whether people are opposed to adopting one or the
other.
ekr: Six weeks is fine to get the profile / complete spec.
Mirja: I don't have an objection to this, but not sure it can all be
done in six weeks. All that just to adopt something. I'm not
able to say yes to any, because I'm not sure what drawbacks
we'll have from choosing one or the other. We could have them
all as editors of whichever one is adopted.
Christian Huitema: We're making this too complicated. Two proposals do
the same thing. One emphasizing code reuse (with
its cons and pros). The other is an ad-hoc specific
solution. Nevertheless, it is new code that has not
been tested. That dillema is not going to change in
6 weeks of 4 months.
Daniel Khan Gilmore: I don't think the proposal of having one evolve
into the other is crazy. Both need a signalling
mechanism. We have different TLV implementations
but they're willing to change. The TLS handshake
is burdened with a lot of cruft. TLS was not
suitable for analysis. New versions of TLS have
better analysis. TLS has a complicated handshake
because you don't know how the other is
configured. The signaling mechanism allows to
make it simple. So they're coming down to the
same thing. I think the tcpcrypt people have more
code down.
Andrea: I agree, but realistically, tcpcrypt is not going to change
much. We might get a TLS profile. But we are probably going to
be in the same situation. tcpcrypt won't change, TLS might be
more complete.
Lars: Christian nailed the difference. The considerations are
different. We can do tcpcrypt over TCP stacks. But to my
implementers one is acceptable.
:::
Yoav: As an implementer, can do both.
Andrea: So why don't we see UseTLS if it's so easy?
Stephen: Will people change their minds? If now, what's the point?
Tero: how many people are willing to change their minds?
- yes (some hum)
- no (stronger hum)
Stephen: if people won't change their minds, this plan is going to
fail.
David: About the question of whether you would be able to participate
if the other proposal is chosen: I don't understand TLS well
enough. I want a protocol where the key exchange proof takes
like two pages. If it's possible to profile TLS 1.3 down to
that, then I'm happy.
Tero: Can we make a TLS profile that is 2 pages and self-contained?
???: I'm not best to evaluate that, but TLS 1.3 should want what
tcpcrypt is offering.
ekr: Crypto handshakes of TLS and tcpcrypt are isomorphic. TLS is
complicated because it does more than that.
David Mazieres: TLS wrapping key exchange and authentication makes it
complicated.
Ted Hardie: Tcpcrypt people are willing to consider harmonization. An
opportunity to make them converge. Working for convergence
is a good option. Would people be fine with that?
DM: We've been trying for a while. Not sure what convergence means.
Ted Hardie: We try. If we don't reach convergence, we do something
else.
Mirja: There is rough consensus to adopt both. Let's do it.
Brian Trammel: Let's do it.
DM: Willing to work toward convergence. But only if we start with a
fork of TLS.
Stephen: Don't want to fork 1.3 while it's being worked on.
Lars: Won't help to make them WG drafts.
Tero: Probably not.
Rich Salz: This is the same as the last two meetings
Martin: look at the mailing list. There is consensus about adopting
both. There is tine to work on both.
Tero: are you willing to work on this time schedule?
- yes (soft hum)
- no, this is a bad idea (lower hum)
--
[email protected]
_______________________________________________
Tcpinc mailing list
[email protected]
https://www.ietf.org/mailman/listinfo/tcpinc