dwd, so are you saying we should drop ALPN from the spec or just change it into a MAY ?
moparisthebest
because I'm opposed to the first and fine with the second :)
dwd
What does ALPN provide that is required for interop?
moparisthebest
when you want to easily multiplex a port
moparisthebest
a big corporation has IPs to spare, maybe, and doesn't need it, for personal servers you do
dwd
Yes, sure. ALPN is useful for multiplexing ports. Why is it required for interop with direct TLS?
dwd
Or to put it another way, why is it specifically useful for direct TLS?
moparisthebest
if you remove it from the spec then as a server operator I cannot multiplex easily
dwd
What does multiplexing have to do with direct TLS?
moparisthebest
because alpn is built into direct TLS and specifically for multiplexing?
dwd
Well, put it this way - right now, nobody much seems to be implementing it, and yet it works fine.
dwd
Lots of TLS options and extensions might be useful in XMPP. But we don't specify many of them - so what makes ALPN something we want to call people out for non-conformance on?
Zash
What is the purpose of direct tls?
moparisthebest
conversations implements it which is why it works so well
Zash
Is it to get through your company firewall?
moparisthebest
I don't think you call them non-conformant, but as a server operator I need to be able to run nginx and prosody on the same port, so I need alpn
dwd
Zash, That's an interesting question, yes.
moparisthebest
the odd client that doesn't send alpn is ok because of SRV records they just fall back
Zash
To me it looks way too much like a premature squeezing of all services into port 443 because ... reasons.
moparisthebest
everyone else is doing it :)
moparisthebest
I agree it's crappy we have to run everything over TLS on 443 to connect
moparisthebest
but also not supporting that won't change anything, people just won't use XMPP
dwd
I really doubt that. But even if not, it's not clear that ALPN belngs in *this* spec.
petershakes his fist at the evil NATs along with all the other Internet purity people and then returns back to reality
Zash
Nice things be unattainable.
peter
These days if you want just about anything to work, you have to (sometimes) run it on 443. Same for TURN servers etc.
Zash
So therefore we must embrace it and put everything on 443.
moparisthebest
dwd, at least for me the spec is 100% useless without alpn
daniel
I'm very much for keeping alpn as may
moparisthebest
I have to multiplex on 443, and so do lots of other servers
daniel
Otherwise you can only differentiate on domain basis
Zash
moparisthebest: which leads back to the question of its purpose
daniel
And that's not good enough in some scenarios
moparisthebest
it has multiple purposes, my personal purpose is to evade shitty firewalls I encounter
moparisthebest
now someone else might only want it for 0-RTT or something, in which case maybe alpn isn't needed
Zash
What is the problem statement? Does this require ALPN to solve?
moparisthebest
but, if they need multiplexing, it still is
dwd
daniel, There's literally no difference between MAY and removing it entirely.
dwd
daniel, I mean, there's absolutely nothing in XMPP which rules ou using any TLS extension at all.
Zash
If you do direct TLS you need SNI, since you can't use the initial stream 'to' attr anymore to select certificates
daniel
dwd, ok optional then
Zash
Assuming name based certificate selection is a thing you do
daniel
should
SamWhited
The current wording (SHOULD) seems perfectly reasonable to me. If the client sets it and it's not used by the server, no big deal. If the client doesn't set it and the server needs it though, that ends poorly. Just tell clients to set it and be done with it.
dwd
daniel, Right, "OPTIONAL" and "MAY" are equivalent terms.
dwd
SamWhited, If ALPN's a "SHOULD", I don't think we're in a position to advance it. That's fine if that's what we want.
daniel
may would have the benefit that if servers and client end up implementing it the at least use the same value. which would allow us to raise it to a should again if we see that people are using it
moparisthebest
I tend to prefer SHOULD, a server operator can feel more comfortable requiring it then
daniel
MAY over not specifing it at all i mean
Zash
MAY is the default? or like, inherited from all the TLS RFCs?
moparisthebest
daniel, I haven't checked but it's faster to just ask, does conversations.im require ALPN ?
daniel
moparisthebest, no
SamWhited
dwd: That seems fine to me. Is it just that we need another open source implementation? I think I have one I just never published that should be "production ready", I can probably push it this weekend if that's all that's needed.
jonasw
SamWhited, I think server-side support is also lacking
peterhas left
SamWhited
Server side support doesn't really matter, does it? I mean, this is just saying "clients SHOULD set it because it doesn't hurt them at all and then it provides information that servers can use if they want to"
moparisthebest
how do you define 'implementation' ? this spec has quite a few parts to implement
daniel
i think one of my customers requires it. because we are running an http server on the same ip with the same host name
daniel
but conversations.im has the http server on a different ip
moparisthebest
you've got client support, then server c2s support, then server s2s as client and server s2s as server support
daniel
but that's not an option everywhere. ipv4 is getting rare
moparisthebest
so I count 4, "parts"
moparisthebest
with alpn, I can host an xmpp server with full c2s and s2s support and http or whatever on a single port, with ipv4 getting harder to find that seems useful
daniel
I don't see the point of hosting s2s on the same port. but c2s + http is a valid argument
moparisthebest
so I could see a future host that sells you a dedicated server, but a shared IP and shared port 443, and you get to add your own alpn/sni rules for it
moparisthebest
sounds awful but without ipv6 also seems inevitable
jonasw
I see a future where we get IPv6
jonaswrocks forward and backward in a corner
Zash
s/ipv6/ip/; s/ipv4/legacy ip/
peterhas joined
jonasw
Zash, thank you
dwd
SamWhited, Right now it's saying all implementations, so clients, servers, C2S and S2S.
moparisthebest
jonasw, I *hope* for that future but, well, I also hope for a future where everything doesn't need shoved through TLS on 443
moparisthebest
I'm in the continue to hope, but also do what you can now camp :)
moparisthebest
dwd, I don't see a reason to have different rules for s2s and c2s, just overcomplicates things
moparisthebest
right now you can send it or not, I say leave it that way
Zash
moparisthebest: I'm not sure that writing a spec for shoving everything on 443 is the best way to make that come true
daniel
you don't need to handle alpn on an *incoming* s2s or c2s connection. but that's obvious I guess
jonasw
daniel, don’t you? what if s2s and c2s live on the same port?
moparisthebest
again Zash you really are much more of an optimist than me if you think not supporting that will push people to open other ports rather than to abandon xmpp :)
daniel
jonasw, fair enough
jonasw
moparisthebest, I don’t think that IPv4 depletion is an argument here
Zash
moparisthebest: optimist? "being draged kicking and screaming into a future I don't want" is what I was going for
jonasw
some corporate firewalls may very well be
jonasw
but I’m not confident that ALPN will help there in the long run
moparisthebest
user of public wifi in coffee shop: "hi owner-of-coffee-shop, my xmpp client can't connect from here, can you unblock port 5222?" owner of coffee shop: "what's xmpp and what's a port?"
jonasw
Zash, you just put how I feel in words better than I could have done it :-)
Ge0rG
moparisthebest: owner of coffee shop: "stop that dirty talk! I call the police"
daniel
moparisthebest, and that assumes the owner is even around…
jonasw
moparisthebest, as I said, c2s makes sense, s2s doesn’t too much
jonasw
and this doesn’t have anything to do with IPv4 depletion.
moparisthebest
right, more likely you are talking to the 16 year old behind the counter who's never met the owner
danielhas left
moparisthebest
jonasw, it's the same code and everything though, it seems more complicated to only support it for c2s and not s2s meh
moparisthebest
what if you are running your xmpp server on your laptop from a coffee shop???? >:)
peterhas left
jonasw
moparisthebest, the difference is that you don’t need to require support for ALPN from servers in that case. Since they will only ever be listening on a single port which would be a candidate for ALPN (the c2s-port), they don’t need to distinguish protocols.
moparisthebest
maybe your server doesn't, but maybe someone else's server does, what's the argument against it other than "I don't think it needs it" ?
jonasw
moparisthebest, is there an S2S-ALPN-capable XMPP server implementation?
moparisthebest
which of the 3 server side parts? haha
moparisthebest
sslh covers 2 of 3 parts
moparisthebest
dwd's metre could have alpn added rather easily I think
jonasw
moparisthebest, sslh isn’t an XMPP server, right?
moparisthebest
metre isn't either I guess
Zash
ssl/ssh multiplexer thingymajibber
moparisthebest
the combination implements it though, I don't see a difference really
danielhas left
danielhas left
danielhas joined
SamWhited
dwd: that still seems perfectly fine to me. I don't see a problem with just setting it even if it's not used, and if there really is a serious problem (option to try and avoid firewalls that inspect that field or something) then that's why it's a SHOULD, they can ignore it if they *really* need too.
moparisthebest
that's basically it, it's super handy to have unless you are trying to evade firewalls, and then you can just not send it, and still be compliant with spec
moparisthebest
evade packet inspecting firewalls that don't seem to exactly exist yet, but no doubt will