Just for my understandig, considering the Encryption of all Messages, why is TLS required? And if it is required, why has a Let’s Encrypt certificate more value than a selfsigned one?
For the server operator it’s one way less to keep anonymus. It also increses the monthly server costs if you buy the certificate. On the other hand if many servers use certificates from Let’s Encrypt, big area of the network depends on one provider. This is automatically is a vunerablity.
Encryption of server to server links with a trusted certificate improves deliverability across the email federation.
Encryption of the IMAP and SMTP client to server link:
Mitigates login credential stealing by an MITM actor on either side of the link (or even in the middle). They could then stealthily attach a new IMAP IDLE device to collect the metadata of all mail you receive from the distance later or to troll by continuously deleting all mail or lock you out by changing your password (if you use a classic mailbox).
Makes it less probable that they can link your device and IP to a given mailbox localpart by snooping your login name.
If you control devices registered on your host, you may be able to install your self-signed server certificate on all devices. If you don’t care about federation and you only intend to communicate with chatmail users, you may be able to get away with a lack of TLS server-side.
For the client2server connection TLS certificate is needed to make sure user credentials cannot be sniffed out. It is nearly trivial to setup a fake Wi-Fi access point with the same name and password and MITM connections there. Once you have login and password of the mailbox, you can monitor when user receives messages persistently even after the user has switched to another network. This could be mitigated with some cryptography e.g. by using SCRAM authentication like most XMPP server do (as long as user connection is not MITMed during the “registration”), or by using OPAQUE which is not standardized or implemented by anyone for email, but we are not there yet.
I don’t get this, you only need a domain name to get a certificate, and your domain name is already known.
For server2server connections using not self-signed certificate is probably less important than for client2server connections, but you can still at least detect MITM if you use CAA records or monitor certificate transparency logs. We are anyway moving the code for connection between chatmail relays into Rust, so may eventually move similar logic that will allow using expired certificates: feat(transport): Remote delivery over SMTP by j-g00da · Pull Request #104 · chatmail/filtermail · GitHub Currently chatmail relays lose federation when certificates expire.
I would be able to run a Family and Friends Server for 2 € / month?
They also write, one ssl certificate is included. If not, zerossl would work. If I make all this effort, I don’t want to rely on dependencies to outside of the EU.
1 core, 60 GB disk and 2 GB RAM looks fine for personal server for sure. The most important is likely storage, but for personal usage you can even give 3 GB mailbox for each user and that would be a lot of space for chatting given that messages are deleted eventually.
The only thing I’d worry about with cheap hosters is reliability, it is unpredictable, but this you can only know by trying. For bad hosters server goes down, then you try to reach support and they don’t respond and it repeats once a month (ask @adbenitez about his experience running a server with Contabo).
Reliability may be improved by hosting two chatmail servers at separate dirt cheap providers, €1/month each and set them up in multi-relay configuration on all of your clients.