-
-
Notifications
You must be signed in to change notification settings - Fork 1k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Can' connect to pubsub #822
Comments
Here's our server reports: |
If @mimi89999 s server takes issue with something, it would probably be the one aborting the connection. Here it's the chatsecure one aborting it. If you have logs that capture anything from the TLS negotiation, that's where I would look if I were you. |
Attempting to connect with no non-forward-secret ciphers enabled, it fails. Using Prosody default ciphers, AES256-GCM-SHA384 is selected. |
Our server has no logs which makes this kind of hard to debug.... |
Curves are the issue here. Prosody is using secp384r1, but pubsub chatsecure is using prime256v1. That's why ECDHE isn't negotiated. |
Aha! How did you figure that out? |
After @Zash said that plain RSA gets negotiated for him, I started looking why could ECDHE not get negotiated. I looked at the messaging one report and saw that different primes are used. |
Why isn't this something that is handled during cipher negotiation? Sigh.. |
It is handled, but the exact behavior has changed in OpenSSL and/or LuaSec in a way that complicates things. Before, it was treated more like how normal DH is treated; the server decides and the client just goes along with it. Now, it works more like ciphers, each party has a ordered set and something out of the intersection gets selected to be used. But due to the earlier behavior, the set of curves is just a single one so unless both ends use the exact same curve the connection either gets aborted, or it picks a different cipher suite. |
@chrisballinger @Zash I resolved the issue by enabling non FS ciphersuites, but I am not happy with that... |
@mimi89999 I agree that's not ideal. I'd like to disable non-FS as well but if it breaks everyone using the wrong curve, that's a dealbreaker... :-\ |
Storm about which curve is right started? 😄 It's good to also support DH... Maybe I will install the latest version of luasec from upstream. It should support multiple curves... |
+1 for including a DHE backup cipher for pubsub.chatsecure.org, at least as a workaround for incompatible ECDHE curves, Please? :) Here's my cipher list: My rationale for requesting a DHE backup cipher, even though it is more overhead than ECDHE: Some XMPP servers use prime256v1, and others use secp384r1, including my system (running Prosody 0.10.0-1 Debian). Is it possible for me to configure my system to negotiate with both prime256v1 and secp384r1 systems? If not, then would including a DHE cipher (lower down in your list if you wish) be an all right option to include so that third party operators (like myself) also don't need to enable non-FS ciphers? Or must I throw in AES256-GCM-SHA384 as my last-resort backup in my own cipher list? :) I stumbled upon this curve incompatibility issue in diagnosing my own system's failure to support push notifications (#770) for an iPhone friend. (hooray for debug messages)
|
So I added @chrisballinger - Are you the admin for pubsub.chatsecure.org? What do you think about enabling some DHE ciphers as backups for ECDHE curve incompatibilities? Then we could still have forward secrecy... (Pretty please?) :) |
nudge nudge... Any chance of supporting DHE ciphers on pubsub.chatsecure.org, pretty please? :) Feel free to put them at the bottom of your cipher list if that's your preference, but it'd be swell to provide a work around for ECDHE curve incompatibilities across the whole community of XMPP servers... For anyone else, here's my config snippet for Prosody 0.10.2 (from Debian packages) for a mostly-PFS cipher list with
|
@chrisballinger any updates on this topic? |
@chrisballinger Could you please investigate what's going on with the server?
The text was updated successfully, but these errors were encountered: