End-to-end encryption (E2EE) is important. However, on self-hosted or otherwise trusted servers, the client-to-server transport layer presents a much larger attack surface. It’s the first hurdle an adversary must overcome before they can attack E2EE.
That’s why #Conversations_im includes advanced MITM detection called Channel Binding. Turn it on today!
It’s optional for now because not all servers support it. Talk to your admins.
CryptGoat
in reply to Daniel Gultsch • • •Benjamin
in reply to Daniel Gultsch • • •Daniel Gultsch
in reply to Benjamin • • •mistersixt
in reply to Daniel Gultsch • • •Daniel Gultsch
in reply to mistersixt • • •mistersixt
in reply to Daniel Gultsch • • •tarakiyee
in reply to Daniel Gultsch • • •Сейд ✅
in reply to Daniel Gultsch • • •Замечательно, спасибо, Даниэль! Можешь ли ты настроить так, чтобы Conversations и Quicksy по умолчанию активировали привязку канала?
И ещё один вопрос: в какой версии Conversations появится возможность выбирать только TLS 1.3, как на скриншоте?
Daniel Gultsch
in reply to Сейд ✅ • • •@Seyd connections to the conversations.im and quicksy.im domain will require both Channel Binding and TLS 1.3 regardless of what those settings are set to. Quicksy the app won’t even have those settings.
As to when the setting to opt-out of TLS 1.3 will disappear (in favor of just always requiring it): I don’t know. Hopefully maybe in a year. Depends a lot on the user feedback we get after that opt-out setting will ship with 2.19.3
Daniel Gultsch reshared this.
rakoo
in reply to Daniel Gultsch • • •Let's consider how deltachat, in its default mode of operations, works.
What is the purpose of Channel Binding ? It seems to me to be mitm-resistance, but considering that in deltachat, contrary to Conversations, the user doesn't even know their password I don't see how they're going to be phished on a scam website. The only way to connect from another client is starting from an already legit one that will consciously share credentials. The app, like conversations, doesn't make typos when calling the server, so if mitm didn't happen through mistyping the address it happens behind TLS, so it's the same for Conversations.
What happens in the case of a mitm ? In deltachat chats are not mitm-able: the only thing a mitm box will see is gpg-encrypted emails. Recall that in its default setting email addresses are pseudonymous (i.e they have no human meaning and it is expected that one person will use many addresses) so what a mitm will see is that some random address sent some other random address something, and the date. The real mitm that can have an impact is one that can intercept the qr code, or the link it contains, out of band. Nothing can be intercepted in-band. Note that this is true even in the non-default way of using deltachat, with your own account on another server, as long as you use deltachat.
In Conversations, because the server is important, they will be able to do everything the user can do: see/set presence, change omemo keys, publish/subscribe, read and send unencrypted stanzas. The only thing they won't be able to do is to read the content of encrypted content, but they will still see who sent it in which room.
Deltachat massively downgraded the importance of server to the point they are just relays of content. It is parting ways with the 80's and 90's era of a server capable of doing everything and clients only ordering them to; xmpp hasn't. The result of a mitm is catastrophic in that mindset, but for a more p2p app it's more of an inconvenience.
So, no, deltachat doesn't implement channel binding, but contrary to others including Conversations deltachat actually doesn't need to. So that's ok.
It's a bit disingenuous to talk down on other libre and decentralized messengers, especially when xmpp in its current design and deployment is arguably worse on the security aspect, not talking about the metadata aspect that the xmpp world still hasn't heard of somehow. They are not the enemy, Whatsapp and Messenger are. (note: this is also valid for delta fans)
(I might have made some mistakes, feel free to tell me)
@matrix @delta
adb
in reply to rakoo • • •@rakoo they can still collect the messages tho, then seize your device and with the private key they can then decrypt all messages, even with this new feature of XMPP this is still true if the VPS provider gives access to the server to your enemy, the more secure way out of this attack vector is forward secrecy, with what @daniel announced you should avoid the problem if the VPS is out of the jurisdiction of your enemy tho
@delta @matrix
rakoo
in reply to adb • • •Daniel Gultsch
in reply to rakoo • • •Daniel Gultsch
Unknown parent • • •rakoo
Unknown parent • • •yes, you can verify keys, but that's just it: only keys are verified. Everything else can't, and there are many things not protected by e2ee.
I don't understand the part about YOLOing the transport though, or is that another subject ?
@delta @matrix
adb
in reply to Daniel Gultsch • • •Daniel Gultsch
in reply to adb • • •@adbenitez Channel Binding is roughly akin to certificate pinning. (Which doesn’t easily work in federated networks)
It protects against state level actors acquiring valid certificates signed by well known CAs.
Which is a thing that has happened in the world of XMPP.
notes.valdikss.org.ru/jabber.r…
Under the hood it uses a shared secret (the password) to ensure that client and server are connected to the same TLS connection.
Encrypted traffic interception on Hetzner and Linode targeting the largest Russian XMPP (Jabber) messaging service —
notes.valdikss.org.ruFox Trenton 🎱
in reply to Daniel Gultsch • • •I've got two XMPP accounts, one at Conversations the other on another server.
If I activate it, do you know it it will just be ignored or "break" something when it comes to the other server.
PS. Thanks for a great app! Been using XMPP since early Jabber days, Conversations is my favourite client for it.
Daniel Gultsch
in reply to Fox Trenton 🎱 • • •Fox Trenton 🎱
in reply to Daniel Gultsch • • •(Not great that it breaks, but great that it is immediately noticeable. 😁 )
Guus der Kinderen
in reply to Daniel Gultsch • • •chipiguay - Pablo 😴
in reply to Daniel Gultsch • • •卡巴尔
in reply to Daniel Gultsch • • •Hello Daniel,
Can we verify whether the server and local hash are consistent during the process of determining the known certificate?
The current implementation location of related functions *isCertKnown* is in
src/main/java/eu/siacs/conversations/services/MemorizingTrustManager.java
Adjusted pseudocode
pastebin.com/raw/FFXwMNVX
The reason behind wanting this modification is to obtain an alert following the SSL certificate's update, Even if it is issued by the same CA and subject DN remains unchanged.