WEBVTT

00:00.000 --> 00:07.000
Thanks for your attention.

00:07.000 --> 00:12.000
Hi, I'm Missy Take, for NAMI.

00:12.000 --> 00:18.000
I use state-end pronouns, and I want to talk to you about a bit about the server side of things now.

00:18.000 --> 00:23.000
We just heard a lot about what the DeltaChart line is doing.

00:23.000 --> 00:29.000
So I'm also from DeltaChart team, but technically, this is now about chat mail, which is a separate project,

00:29.000 --> 00:36.000
which we are also doing, oh sorry, I got the logo wrong actually.

00:36.000 --> 00:40.000
So chat mail is not an open-source project.

00:40.000 --> 00:44.000
It gets up on the DeltaChart's chat mail.

00:44.000 --> 00:46.000
It's easy to find.

00:46.000 --> 00:48.000
But why do we actually do this?

00:48.000 --> 00:51.000
Because actually it's not that it's an email client, right?

00:51.000 --> 00:55.000
We already worked with basically any SMTP and I'm a server.

00:55.000 --> 00:58.000
So why actually focus on the chat mail server?

00:58.000 --> 01:06.000
We had a lot of reasons, which basically, yeah, make it more useful at some point to think about, okay?

01:06.000 --> 01:11.000
But how can you optimize a meta server so it works for chatting?

01:11.000 --> 01:15.000
One big problem, the app, for example, is there's this unique expectation.

01:15.000 --> 01:20.000
People install our app, and then we ask them to, for an email in the passwords,

01:20.000 --> 01:24.000
and then people think like, ham, and you already an app.

01:24.000 --> 01:28.000
Why do I need to give you my email password actually?

01:28.000 --> 01:30.000
Like, what password should I enter here now?

01:30.000 --> 01:33.000
And it was very confusing actually.

01:33.000 --> 01:37.000
And then again, it's also, do we even want users to have to memorize passwords?

01:37.000 --> 01:40.000
In many ways, that's super inconvenient.

01:40.000 --> 01:43.000
password managers are not very widespread after all.

01:43.000 --> 01:49.000
So actually, you are just onboarded right with the QR codes,

01:49.000 --> 01:52.000
or maybe just by clicking on create new profile.

01:52.000 --> 01:55.000
Yeah, you didn't actually have to choose the password.

01:55.000 --> 01:57.000
You didn't have to remember one.

01:57.000 --> 02:01.000
There was one generated actually because it is an email account after all.

02:01.000 --> 02:02.000
But also you exercise.

02:02.000 --> 02:06.000
We don't really want users to have to border with that.

02:06.000 --> 02:09.000
And when they migrate to a different device,

02:09.000 --> 02:13.000
then they basically have to export a backup imported to the new device.

02:13.000 --> 02:17.000
But it will work without actually logging in somewhere.

02:17.000 --> 02:21.000
But it's rather file based and access to the device based.

02:21.000 --> 02:24.000
And you have also didn't like that.

02:24.000 --> 02:27.000
You need to give personal data for registration.

02:27.000 --> 02:30.000
We don't like the rate limits many servers have,

02:30.000 --> 02:32.000
because chatting is fast.

02:32.000 --> 02:35.000
And especially if you have a web XEC app where people

02:35.000 --> 02:38.000
edits like in some editor files together,

02:38.000 --> 02:41.000
like that, of course, causes a lot of emails,

02:41.000 --> 02:44.000
which transmit the data to each other.

02:44.000 --> 02:47.000
Or if it's up, we are annoying.

02:47.000 --> 02:50.000
And of course, we also had a long standing grudge

02:50.000 --> 02:52.000
on the centralization of the email system.

02:52.000 --> 02:54.000
So we wanted to make that different too.

02:54.000 --> 02:58.000
And really focus on how can we further decentralize

02:58.000 --> 03:04.000
what is currently more centralized than it has used to be.

03:04.000 --> 03:05.000
Yeah.

03:05.000 --> 03:10.000
So basically, chat mail is a special kind of email server set

03:10.000 --> 03:12.000
with some configuration.

03:12.000 --> 03:15.000
And the main thing why we did it in the beginning

03:15.000 --> 03:17.000
was we wanted an open sign-up server,

03:17.000 --> 03:20.000
we don't need to give any personal data to just get an account

03:20.000 --> 03:22.000
and start chatting.

03:22.000 --> 03:24.000
Because, yeah, if you click in the app,

03:24.000 --> 03:26.000
create and you profile choose a name,

03:26.000 --> 03:28.000
agree and create, something you have an account.

03:28.000 --> 03:30.000
Like that's all you need to do.

03:30.000 --> 03:32.000
That was the goal here.

03:32.000 --> 03:34.000
But then again, we didn't want to become

03:34.000 --> 03:36.000
the next matrix.org.

03:36.000 --> 03:38.000
You maybe you know the login flow of matrix,

03:38.000 --> 03:42.000
element, for example, everyone in the end is on matrix.org.

03:42.000 --> 03:43.000
That's awesome of what we wanted.

03:43.000 --> 03:45.000
So from the beginning focused on,

03:45.000 --> 03:48.000
okay, how can we make this decentralized as possible?

03:48.000 --> 03:53.000
So right now, we have this one main server where you onboard

03:53.000 --> 03:55.000
when you just click, agree and create,

03:55.000 --> 03:57.000
and don't go through the hazard of

03:57.000 --> 03:58.000
cleaning one of these QR codes,

03:58.000 --> 04:02.000
or clicking on use other server and trying to find another server.

04:02.000 --> 04:04.000
You go there at some point.

04:04.000 --> 04:06.000
But yeah, for that, at the moment,

04:06.000 --> 04:11.000
we are building up a decentralized chat mail server network.

04:12.000 --> 04:15.000
And yeah, the main way to do that is to make

04:15.000 --> 04:18.000
email hosting as easy as possible again.

04:18.000 --> 04:20.000
When I started doing sysatman stuff,

04:20.000 --> 04:23.000
I basically told all of this myself about having

04:23.000 --> 04:25.000
a professional education or so,

04:25.000 --> 04:28.000
yeah, people told me don't ever do mayservas.

04:28.000 --> 04:31.000
You probably heard of that notion as well, right?

04:31.000 --> 04:34.000
So yeah, we want to have a mayserver

04:34.000 --> 04:39.000
which you can tell your teacher children how to do sysatman.

04:39.000 --> 04:41.000
And yeah, it's quite easy.

04:41.000 --> 04:44.000
Basically, you clone our repository.

04:44.000 --> 04:47.000
It comes up a small command line tool.

04:47.000 --> 04:50.000
You can use the init command to generate

04:50.000 --> 04:51.000
a config file.

04:51.000 --> 04:55.000
You can use the run command to then run a set-up script.

04:55.000 --> 04:59.000
And which already you just set up the server.

04:59.000 --> 05:01.000
And maybe you know the pioneer who knows

05:01.000 --> 05:03.000
Pian for here?

05:03.000 --> 05:05.000
Okay, who knows Ansible?

05:05.000 --> 05:07.000
Yeah.

05:07.000 --> 05:11.000
Ansible is Pian for just with the demo files.

05:11.000 --> 05:15.000
Pian for as Ansible with Python files instead of the demo files.

05:15.000 --> 05:16.000
It's amazing.

05:16.000 --> 05:20.000
You can do all your comfort logic in Python instead of this

05:20.000 --> 05:21.000
Yamil shit.

05:21.000 --> 05:25.000
You can use Python libraries in your deployments stuff.

05:25.000 --> 05:26.000
It's really great.

05:26.000 --> 05:29.000
I will not go into this here, but check it out.

05:29.000 --> 05:32.000
And yeah, we are basically hiding a Pian for script

05:32.000 --> 05:35.000
inside the CM deploy run command.

05:36.000 --> 05:40.000
Yeah, and we have a script which generates all the DNS records you need.

05:40.000 --> 05:43.000
I mean, that's one of the big pains for many mail

05:43.000 --> 05:46.000
admins or know how does this decim stuff work again.

05:46.000 --> 05:49.000
Or how do I set my SPF record properly?

05:49.000 --> 05:52.000
Like this command just gives you a phone file output

05:52.000 --> 05:54.000
which you can copy paste.

05:54.000 --> 05:56.000
Either in some weapon interface or really

05:56.000 --> 05:59.000
as a phone file you just uploaded.

05:59.000 --> 06:02.000
Yeah, that's, you know the first project which did that,

06:02.000 --> 06:04.000
but I think it may serve a project nowadays.

06:05.000 --> 06:09.000
Really needs to do this because otherwise you will never get people

06:09.000 --> 06:11.000
to just start with this.

06:11.000 --> 06:15.000
Yeah, and then we have because our setup is also very tested with

06:15.000 --> 06:18.000
Python tests for everything and you can just run the

06:18.000 --> 06:21.000
deploy test to verify that everything works.

06:21.000 --> 06:24.000
We also use that for developing for our CI.

06:24.000 --> 06:27.000
So yeah, I think it's as painless as it can get.

06:27.000 --> 06:30.000
And if you find a way to make it more painless,

06:30.000 --> 06:31.000
please open an issue.

06:31.000 --> 06:33.000
That would be great.

06:33.000 --> 06:36.000
It's also customizable in many ways.

06:36.000 --> 06:40.000
If you don't like what we use for our main instance,

06:40.000 --> 06:42.000
then it's not so hard.

06:42.000 --> 06:46.000
It's basically using post-fix and softcard because of course

06:46.000 --> 06:49.000
and open decim,

06:49.000 --> 06:51.000
acmetool and angenex.

06:51.000 --> 06:55.000
So it actually comes with its own kind of auto-generated website

06:55.000 --> 06:57.000
which you can edit and mark down also.

06:57.000 --> 07:00.000
And if you check out some of those other providers

07:00.000 --> 07:03.000
which we put on the handout, they all made some edits,

07:03.000 --> 07:06.000
like someone translated it to Italian,

07:06.000 --> 07:09.000
someone else put a warning against fascists on their website,

07:09.000 --> 07:11.000
stuff like that.

07:11.000 --> 07:14.000
So it's really customizable there.

07:14.000 --> 07:16.000
And yeah, we have this Python for a base clip,

07:16.000 --> 07:17.000
for sending it up and upgrading.

07:17.000 --> 07:19.000
And right now it's Python for base,

07:19.000 --> 07:21.000
but also some people in the community are working on

07:21.000 --> 07:23.000
Chef, Docker, and Ansible setups.

07:23.000 --> 07:26.000
That's not something we're interested in very much right now,

07:26.000 --> 07:29.000
personally, but it would be great, of course,

07:29.000 --> 07:30.000
if people do that.

07:30.000 --> 07:33.000
We don't really have an expertise in these setups.

07:33.000 --> 07:35.000
So if you want to work on that,

07:35.000 --> 07:38.000
yeah, you're invited.

07:38.000 --> 07:42.000
And yeah, and right now we have around a dozen

07:42.000 --> 07:45.000
chat main servers out there, a bit more I think.

07:45.000 --> 07:48.000
We have some announced on this website on our website.

07:48.000 --> 07:53.000
And for example, those on the handout are mostly there,

07:53.000 --> 07:56.000
I think I put one there which isn't publicly advertised,

07:56.000 --> 07:58.000
there's also something to do with censorship.

07:58.000 --> 08:02.000
And because, yeah, authoritarian regimes want to,

08:02.000 --> 08:05.000
yeah, want to block these things.

08:05.000 --> 08:08.000
And so it's always good to have some service out there,

08:08.000 --> 08:09.000
which are not public.

08:09.000 --> 08:12.000
Let's read the kind of views.

08:12.000 --> 08:17.000
Yeah, basically one other thing that was very important for us,

08:17.000 --> 08:20.000
because one of the big problems of our time next to

08:20.000 --> 08:25.000
billionaires and authoritarian regimes is the climate catastrophe.

08:25.000 --> 08:29.000
So we want to be introduced as minimal resources as possible.

08:29.000 --> 08:32.000
And yeah, a recipe or the cheapest VPS you can find,

08:32.000 --> 08:38.000
is totally enough to support hundreds of users, maybe thousands.

08:38.000 --> 08:41.000
And also, it's actually not so much an email server as you know it,

08:41.000 --> 08:45.000
because we don't actually store the messages.

08:45.000 --> 08:48.000
We are not a long time storage provider,

08:48.000 --> 08:50.000
which many messages have to be.

08:50.000 --> 08:51.000
That's what works like that.

08:51.000 --> 08:53.000
That basically, to download the message and then

08:53.000 --> 08:57.000
stay on the device, and the lesions are not necessarily synced

08:57.000 --> 08:59.000
between devices.

08:59.000 --> 09:02.000
So you can have like four gigabyte mailbox on your phone,

09:02.000 --> 09:06.000
but I have just a hundred megabyte mailbox on the server.

09:06.000 --> 09:10.000
And it basically deletes the message as soon as it downloads it,

09:10.000 --> 09:12.000
except if you have a multi device set up,

09:12.000 --> 09:15.000
then it needs to be on the server a bit longer.

09:15.000 --> 09:18.000
So the other devices has a heavy chance of downloading it.

09:18.000 --> 09:22.000
But we delete every message after like 30 days, I think.

09:22.000 --> 09:25.000
Unconditionally, what it was, you know, not.

09:25.000 --> 09:29.000
It's really more an email router than an email server.

09:29.000 --> 09:33.000
Yeah, and the other nice thing about having a very minimal state,

09:33.000 --> 09:36.000
goes through like state, right?

09:36.000 --> 09:40.000
Basically, we do the open sign-up in a way

09:40.000 --> 09:43.000
that the login request.

09:43.000 --> 09:46.000
When you login in the account doesn't exist yet,

09:46.000 --> 09:51.000
the account is created instead of the same password you used for logging in.

09:51.000 --> 09:55.000
So actually, if you delete an account server side,

09:55.000 --> 10:00.000
you cause maybe like you accidentally do an RM-RF slash or whatever,

10:00.000 --> 10:05.000
and you just run CMD Cloud Run again and set up the server again,

10:05.000 --> 10:09.000
the next second GF of the user logs in again,

10:09.000 --> 10:13.000
the account is recreated, and nothing is lost.

10:13.000 --> 10:16.000
So actually for months, for our main instance,

10:16.000 --> 10:20.000
the tens of thousands of users, we didn't have a backup.

10:20.000 --> 10:25.000
Now, we do for by not, but in general, you actually,

10:25.000 --> 10:28.000
you don't really need to keep state,

10:28.000 --> 10:33.000
and this is all designed to make the minds of elements very free of worry.

10:33.000 --> 10:38.000
And yeah, to let children play with the stuff, basically.

10:38.000 --> 10:43.000
Okay, I'm going to bit more into some details,

10:43.000 --> 10:46.000
because you're probably already thought,

10:46.000 --> 10:48.000
oh, what they are running an open sign up,

10:48.000 --> 10:50.000
it may serve out there in the wild.

10:50.000 --> 10:53.000
What about them?

10:53.000 --> 10:56.000
I guess many of you do with spam on a daily basis,

10:56.000 --> 10:58.000
and are quite annoyed by it.

10:58.000 --> 11:01.000
We're taking a quite radical approach with it.

11:01.000 --> 11:05.000
We basically have no inbound spam filtering.

11:05.000 --> 11:08.000
It's not really necessary.

11:08.000 --> 11:11.000
None of our users really have many problems with spam,

11:11.000 --> 11:14.000
because the addresses are randomly generated,

11:14.000 --> 11:16.000
nine character, alpha numeric strings.

11:16.000 --> 11:20.000
No spammer, no spammer tries to brute force that

11:20.000 --> 11:22.000
to find out that address.

11:22.000 --> 11:24.000
And they're typically not published.

11:24.000 --> 11:27.000
It's a private messenger, usually you join with a QR code

11:27.000 --> 11:29.000
over an invite link.

11:29.000 --> 11:30.000
Yeah.

11:30.000 --> 11:33.000
So they actually don't really need inbound spam protection.

11:33.000 --> 11:36.000
And of course, then, outbound filter,

11:36.000 --> 11:39.000
we don't want to pollute the rest of the email network.

11:39.000 --> 11:42.000
I hope I think you're all very grateful for that.

11:42.000 --> 11:47.000
And so we basically do not let messages go outside,

11:47.000 --> 11:50.000
which are not PGP encrypted.

11:50.000 --> 11:54.000
And basically you need an open public open PGP key

11:54.000 --> 11:57.000
of the recipient to if you want to spam them.

11:57.000 --> 12:01.000
So that just doesn't happen so far.

12:01.000 --> 12:04.000
Please, if you like, realize that come to us,

12:04.000 --> 12:07.000
and we will figure out some solution.

12:07.000 --> 12:09.000
But yeah, so far.

12:09.000 --> 12:11.000
This is just not something that must do.

12:11.000 --> 12:13.000
It's not economic at all.

12:13.000 --> 12:17.000
And yeah, there are enough other ways out there to spam.

12:17.000 --> 12:20.000
And yeah, technically, we will,

12:20.000 --> 12:22.000
we also let through messages,

12:22.000 --> 12:25.000
which are part of the security on protocol handshake.

12:25.000 --> 12:28.000
I'll talk about that a bit more later.

12:30.000 --> 12:31.000
Yeah, basically.

12:31.000 --> 12:35.000
I want to accept that for people in the back.

12:35.000 --> 12:36.000
Consider this.

12:36.000 --> 12:38.000
I mean, open PGP.

12:39.000 --> 12:41.000
Open PGP is like known to have,

12:41.000 --> 12:44.000
to be like a problematic ecosystem.

12:44.000 --> 12:46.000
You know, it hasn't been mass adopted.

12:46.000 --> 12:50.000
And we're actually turning this into spam protection.

12:50.000 --> 12:53.000
They don't have our open PGP keys.

12:53.000 --> 12:55.000
We don't even have them ourselves.

12:55.000 --> 13:00.000
So, so even if you use one of these sign-ups

13:00.000 --> 13:05.000
for receiving newsletters and the database of this address gets leaked,

13:05.000 --> 13:08.000
you know, they cannot just create accounts and spam around

13:08.000 --> 13:11.000
because for the regular web sign-up,

13:11.000 --> 13:14.000
you don't specify your open PGP key.

13:14.000 --> 13:17.000
You know, so the database of email addresses

13:17.000 --> 13:20.000
is not usable for addressing spam

13:20.000 --> 13:22.000
to aid from September, so I was at least.

13:22.000 --> 13:26.000
So that's a very interesting turn in open PGP history.

13:30.000 --> 13:33.000
Yeah, and it works because of our contact discovery model.

13:33.000 --> 13:37.000
This is a bit different to how contact discovery usually works in email.

13:37.000 --> 13:41.000
Like, you pass around your business card with an email address on a door

13:41.000 --> 13:42.000
so.

13:42.000 --> 13:46.000
And instead, you would do that with a QR code like that on those handouts.

13:46.000 --> 13:47.000
And also chat.

13:47.000 --> 13:50.000
Basically, this QR code signifies an invite link.

13:50.000 --> 13:52.000
It's also printed on a handout actually.

13:52.000 --> 13:55.000
And this invite link can also be shared via a second channel

13:55.000 --> 13:56.000
if you don't need.

13:56.000 --> 13:59.000
But basically, either you are in person or you're remote,

13:59.000 --> 14:03.000
and one case you can do a QR code scanning introduction.

14:03.000 --> 14:05.000
And the other case you can send out an invite link.

14:05.000 --> 14:07.000
Maybe via the friend who introduces you.

14:07.000 --> 14:10.000
Or via the other second channel you might already have.

14:10.000 --> 14:13.000
But I mean, if you are somehow remotely in contact,

14:13.000 --> 14:15.000
then you have a contact channel,

14:15.000 --> 14:18.000
which you can use to spread that invite link.

14:18.000 --> 14:20.000
There's also one third big thing,

14:20.000 --> 14:24.000
which is also an interesting part of the queue join.

14:24.000 --> 14:26.000
If you're being added to chat group,

14:26.000 --> 14:29.000
you also get the public keys of everyone in the chat group,

14:29.000 --> 14:31.000
and they get yours.

14:31.000 --> 14:36.000
And not only that, it's also spreading the verification.

14:36.000 --> 14:41.000
The queue join is basically the idea that,

14:41.000 --> 14:45.000
yeah, who here does know how autocryp books.

14:45.000 --> 14:49.000
Maybe or not many, okay.

14:49.000 --> 14:51.000
How it does work.

14:52.000 --> 14:55.000
Yeah.

14:55.000 --> 14:57.000
Yeah, okay, I'll explain it a bit.

14:57.000 --> 15:02.000
Basically autocryp is a standard for OpenPJP key transmission.

15:02.000 --> 15:06.000
How can you exchange OpenPJP keys in band?

15:06.000 --> 15:10.000
So basically you put the key in a header, the autocryp header,

15:10.000 --> 15:12.000
you send it around, that's it.

15:12.000 --> 15:16.000
And that's vulnerable against machine and middle attacks.

15:16.000 --> 15:19.000
So, secure join is a standard,

15:19.000 --> 15:23.000
which protects against machine and middle attacks against autocryp keys.

15:23.000 --> 15:27.000
By putting the finger print, I mean it's simplified now,

15:27.000 --> 15:29.000
but you put the finger print into the queue arcode,

15:29.000 --> 15:31.000
or in the invite link.

15:31.000 --> 15:35.000
And then whoever scans the queue arcode or clicks on the invite link,

15:35.000 --> 15:39.000
can already, can then verify by sending around some emails

15:39.000 --> 15:41.000
back and forth between your two accounts.

15:41.000 --> 15:44.000
That actually, yes, this is your key,

15:44.000 --> 15:48.000
and it has not been tampered with by a server in the middle.

15:48.000 --> 15:52.000
There's some malicious machine in the middle.

15:52.000 --> 15:54.000
That's here, yeah.

15:54.000 --> 15:59.000
And no, no, I will come back to that later.

15:59.000 --> 16:06.000
And so the green checkmark you all see in the chat now.

16:06.000 --> 16:08.000
Here, this one.

16:08.000 --> 16:12.000
And this means that with all of those,

16:12.000 --> 16:17.000
56 check members, you now have MITM protected.

16:17.000 --> 16:20.000
OpenPGP and to end encryption.

16:20.000 --> 16:23.000
And I have no, who has been to a crypto party once,

16:23.000 --> 16:25.000
where you like exchange the fingerprints

16:25.000 --> 16:27.000
and verify it and sign everything.

16:27.000 --> 16:31.000
This was just, we did that in the past half an hour

16:31.000 --> 16:33.000
by accident without telling you.

16:33.000 --> 16:35.000
Yeah.

16:35.000 --> 16:39.000
So, yeah.

16:39.000 --> 16:43.000
Now then there's the thing with,

16:43.000 --> 16:47.000
yeah, basically this is how the contact discovery works.

16:47.000 --> 16:53.000
And this enables us to do the same protection stuff.

16:53.000 --> 16:56.000
Yeah, now I already said something about secure join.

16:56.000 --> 16:59.000
I want to clean up a bone out of the move,

16:59.000 --> 17:05.000
that basically email has so much metadata,

17:05.000 --> 17:10.000
and that it cannot secure because it has so much metadata.

17:10.000 --> 17:12.000
If you use a, like the devil chat,

17:12.000 --> 17:14.000
you have basically the only information

17:14.000 --> 17:18.000
which is left on the server if you look at an

17:18.000 --> 17:20.000
actually email, I'm fire.

17:20.000 --> 17:22.000
You have a sender, you have some recipients,

17:22.000 --> 17:24.000
you have the date, and you have the article

17:24.000 --> 17:26.280
of the BGP public key.

17:26.280 --> 17:29.280
That's all you will see, also, as an admin,

17:29.280 --> 17:31.840
for those encrypted males.

17:31.840 --> 17:36.520
And actually, we have some plans to even reduce that

17:36.520 --> 17:37.960
for the coming year.

17:37.960 --> 17:42.080
We don't like to promise things which are not there already.

17:42.080 --> 17:44.280
So we'll not go that much into detail.

17:44.280 --> 17:46.680
But yeah, compared to metrics, for example,

17:46.680 --> 17:49.080
where reactions are unencrypted.

17:49.080 --> 17:51.400
We're all the group membership information

17:51.400 --> 17:55.000
is unencrypted on a server and also

17:55.000 --> 17:58.440
persisted forever instead of being the leader

17:58.440 --> 18:02.680
as soon as you don't need to email any more.

18:02.680 --> 18:04.680
Yeah, that's a very different model here.

18:04.680 --> 18:10.520
And I think, yeah, email has a better reputation here

18:10.520 --> 18:11.720
for no reason, actually.

18:11.720 --> 18:13.320
You can do this much better.

18:16.200 --> 18:20.760
So basically what we propose is

18:20.760 --> 18:24.320
a kind of also for the whole email system to move away.

18:24.320 --> 18:26.760
I mean, a lot of the stuff will not be applicable

18:26.760 --> 18:28.320
to your mail service at home.

18:28.320 --> 18:29.880
You don't want to be open-signer, probably,

18:29.880 --> 18:30.920
or not all of you.

18:30.920 --> 18:32.520
Maybe some of you want to run a chat mail server,

18:32.520 --> 18:34.160
but that would be great.

18:34.160 --> 18:40.360
But yeah, you probably cannot require open PGP encryption.

18:40.360 --> 18:43.760
I mean, we basically don't allow users to send out emails

18:43.760 --> 18:46.280
to normal email addresses if they don't have the PGP key

18:46.280 --> 18:49.360
of them, so that in many ways, for email users,

18:49.360 --> 18:53.040
this is a bit contrary, counter-intuitive.

18:53.040 --> 18:55.680
So they have some constraints here

18:55.680 --> 19:01.480
to basically introduce cryptography-based interoperability

19:01.480 --> 19:07.120
instead of having just centralization-based trust.

19:07.120 --> 19:08.920
Yeah, that's right now.

19:08.920 --> 19:11.760
So we require open PGP and auto-crypt.

19:11.760 --> 19:14.360
We do not require that, so chat.

19:14.360 --> 19:17.240
We require that other mail servers use TKIM

19:17.240 --> 19:21.160
and strict ADKIM, strict DKIM alignment.

19:21.160 --> 19:25.400
But we do actually not require SPF or DMARC.

19:25.400 --> 19:28.640
And this is for basically preventing from forgery.

19:28.640 --> 19:32.480
We do have SPF and DMARC records in our auto-generated

19:32.480 --> 19:35.160
DNS records, of course.

19:35.160 --> 19:39.760
But we do not require others to use outdated standard

19:39.760 --> 19:43.840
specifically, and really try to follow the best practices here.

19:43.840 --> 19:46.680
And we require also, for example, that from HADOM

19:46.680 --> 19:50.880
that's just a login name, we require TLS encryption,

19:50.880 --> 19:54.000
so you cannot send a mail to chat my user

19:54.000 --> 19:55.840
without TLS encryption.

19:55.840 --> 19:58.080
That should not be possible anymore.

19:58.080 --> 20:01.200
And we can do that basically because we do this many

20:01.200 --> 20:03.200
for delta chat users.

20:03.200 --> 20:07.760
We do not, like we can move in that space

20:07.760 --> 20:12.400
because we can sacrifice them into a probability here

20:12.400 --> 20:18.080
for good practice, which is also not a solution for everyone,

20:18.080 --> 20:20.240
which is fine.

20:20.240 --> 20:24.080
So yeah, I will skip that.

20:24.080 --> 20:28.040
Basically, we have still have some suggestions

20:28.040 --> 20:31.720
for classic email admins, classic mail servers,

20:31.720 --> 20:34.360
how they can improve decentralized email,

20:34.360 --> 20:37.920
based on cryptography instead of centralization.

20:37.920 --> 20:41.600
Use standards like decim, and really enforce them,

20:41.600 --> 20:45.680
or do more than the minus one or plus one,

20:45.680 --> 20:47.640
as been the recommendation.

20:47.640 --> 20:50.080
Like that's a bad joke.

20:50.080 --> 20:53.480
That way, decim is in verb, anything.

20:53.480 --> 20:57.120
And yeah, instead of trusting blocklists,

20:57.120 --> 20:59.720
and IP blocklists and all of that stuff.

20:59.720 --> 21:02.520
And yeah, stop grailisting, really, please.

21:02.520 --> 21:04.720
My own, the mail provider where I have my main account

21:04.720 --> 21:07.480
on uses grailisting, and sometimes when there is someone

21:07.480 --> 21:11.320
from a new domain, and I, like, show them my QR code,

21:11.320 --> 21:13.840
it takes 10 minutes until it's complete.

21:13.840 --> 21:15.400
That's super annoying.

21:15.400 --> 21:18.600
And it doesn't really improve anything,

21:18.600 --> 21:22.600
if you could also trust cryptography instead.

21:22.600 --> 21:25.080
And then, generally, for your ask them decet apps,

21:25.080 --> 21:29.920
treat every open PGP encrypted email as ham, not spam,

21:29.920 --> 21:33.600
and treat every valid reply as ham.

21:33.600 --> 21:37.200
Because most Delta chat messages are valid replies,

21:37.200 --> 21:38.320
and IPGP encrypted.

21:38.320 --> 21:42.600
So those are things which are hopefully easy to do

21:42.600 --> 21:44.840
for others, and that would be great.

21:44.840 --> 21:46.320
Thanks.

21:46.320 --> 21:47.920
So thanks, those are the links.

21:47.920 --> 21:49.160
There are also some things.

21:49.160 --> 21:53.000
And yeah, also, maybe one last thing.

21:53.000 --> 21:56.680
We did a poll in our existing chatman operator group

21:56.680 --> 21:59.400
about how much effort it is to operate something like this.

21:59.400 --> 22:02.160
And yeah, nobody said that it's more than two hours

22:02.160 --> 22:05.360
a month, work, and most actually here.

22:05.360 --> 22:10.360
So it's quite easy to get running, if anyone's interested.

22:10.360 --> 22:11.480
Can I also talk later outside?

22:11.480 --> 22:12.320
Thanks.

22:12.320 --> 22:13.320
Thank you.

22:13.320 --> 22:14.320
Thank you.

22:19.320 --> 22:22.760
So Q&A, does anyone have questions or remarks?

22:29.400 --> 22:30.640
Does that join the server?

22:33.640 --> 22:35.200
The question was that there is any moderation

22:35.200 --> 22:38.400
of someone malicious John's to server.

22:38.400 --> 22:41.400
Not really, because they could also then

22:41.400 --> 22:44.200
unlike even if you find out somehow,

22:44.200 --> 22:46.920
you can maybe disable that account by adding a character

22:46.920 --> 22:49.400
to their password file.

22:49.400 --> 22:52.920
They can join with a new account.

22:52.920 --> 22:55.000
These things need to be approached differently,

22:55.000 --> 22:58.120
I think, than with censorship.

22:58.120 --> 23:00.440
But it's also discussion, we are,

23:00.440 --> 23:01.720
it's more nuanced, of course.

23:01.720 --> 23:03.520
Then this is the short answer basically.

23:05.760 --> 23:09.640
You said that I'll write you the script and I'll be

23:09.640 --> 23:13.560
on the same process so that if the server comes,

23:13.560 --> 23:16.280
this will be just that you will be able to do

23:16.280 --> 23:18.360
a new language that's right.

23:18.360 --> 23:22.360
So what happens is that happens so maliciously,

23:22.360 --> 23:26.440
how do you defend somebody's, what on the username,

23:26.440 --> 23:31.160
which other people recognize, do you hijack by somebody?

23:31.160 --> 23:38.520
Yeah, yeah, and to repeat it once,

23:38.520 --> 23:40.920
how can you, yeah, prevent someone

23:40.920 --> 23:44.120
squirting the email address of someone

23:44.120 --> 23:47.480
by logging in with the same username

23:47.480 --> 23:50.120
while you're after the older account was deleted.

23:50.120 --> 23:52.040
I mean, that's a little unlikely scenario, of course,

23:52.040 --> 23:55.000
because rarely user accounts are deleted.

23:55.000 --> 23:57.720
But basically it's prevented by,

23:57.720 --> 24:00.600
and the attacker does not have the private key

24:00.600 --> 24:03.640
of that person who was a customer's deleted.

24:03.640 --> 24:06.440
So it will show a big warning if, like,

24:06.440 --> 24:08.440
when their thing changes and, yeah, maybe,

24:08.440 --> 24:13.400
write out, like, with actually, like, changing the private key

24:13.400 --> 24:15.720
and messaging each other and you will see

24:15.720 --> 24:18.920
that we don't just show a small change set up message,

24:18.920 --> 24:21.640
as long as there was a green check mark, of course.

24:21.640 --> 24:24.840
But instead, actually, show a warning where people are told,

24:24.840 --> 24:28.040
how they can do it, what they can do about it, how they can verify

24:28.040 --> 24:30.040
via a second channel of the person,

24:30.040 --> 24:33.080
change the device, maybe, and stuff like that.

24:33.080 --> 24:37.960
So the problem is also solved by cryptocurrency, if you will.

24:42.760 --> 24:44.920
Oh, sorry.

24:44.920 --> 24:47.400
No, no, I mean, you're with the mask, sorry.

24:47.400 --> 24:49.400
Sorry.

24:49.400 --> 24:51.880
This may actually go back to the talk before,

24:52.440 --> 24:55.560
but I didn't see that this stuff.

24:55.560 --> 24:57.960
So, I'm so up to you, when you, patrons,

25:03.960 --> 25:06.000
Image...

25:18.200 --> 25:20.000
But the question was, a reference Sheila also work

25:20.000 --> 25:30.000
of classic email accounts in Delta Chat. And yes it does. Yeah. Yeah, back there.

25:32.000 --> 25:40.000
Yeah, let that you ask. You go to the settings. And then you click on add second device.

25:40.000 --> 25:46.000
And then you click on continue. And now I cancel this quickly because it shows a QR code.

25:47.000 --> 25:52.000
It shows a QR code, which you can then use to clone, which you can scan in the same local network of another device

25:53.000 --> 25:55.000
to clone your account to a second device.

25:56.000 --> 25:59.000
Yeah, it's the most usable thing we can could come up with.

25:59.000 --> 26:02.000
All right. We are a little bit at the end of the situation. There was one question.

26:02.000 --> 26:05.000
It's sometimes in the very end, but I think it's over right now.

26:05.000 --> 26:07.000
So maybe one very final question.

26:07.000 --> 26:09.000
I don't know who was first.

26:11.000 --> 26:12.000
Sorry. Sorry.

26:12.000 --> 26:19.000
So my question is, maybe I'm asking late, but how dependent is it that really on a group of G.

26:19.000 --> 26:24.000
Could you, if you could read model, it just ripped a group of G out and do something smaller?

26:24.000 --> 26:27.000
We do not use a group of G at all, do you mean open PGP?

26:27.000 --> 26:28.000
PGP, yeah.

26:28.000 --> 26:30.000
Oh, PGP.

26:30.000 --> 26:35.000
I think it's not really, it doesn't really make sense to rip out open PGP.

26:35.000 --> 26:38.000
It's the interoperable email standard.

26:38.000 --> 26:44.000
And yeah, just, we are also coming from that space also.

26:44.000 --> 26:47.000
I don't think that's what we would do.

26:47.000 --> 26:50.000
Also, we come back to your problem.

26:52.000 --> 26:54.000
Yeah, we have an implementation.

26:54.000 --> 26:59.000
That is actually also aiming for to implement post quantum later this year in a summit.

26:59.000 --> 27:01.000
We will talk about this.

27:01.000 --> 27:03.000
We don't need to fight here.

27:04.000 --> 27:06.000
And that's our PGP.

27:06.000 --> 27:08.000
It's a representation of PGP.

27:08.000 --> 27:12.000
And that is very well developed, audited, and so on.

27:12.000 --> 27:15.000
So there's currently no reason, like we don't have problems there.

27:15.000 --> 27:17.000
It's really working well.

27:17.000 --> 27:20.000
And there is, of course, always a possibility.

27:20.000 --> 27:22.000
If you look at this, we have to see a real time.

27:22.000 --> 27:25.000
The blog post that is pinned, I think, on the very verse.

27:25.000 --> 27:29.000
It uses a different encryption format.

27:29.000 --> 27:30.000
It's not PGP.

27:30.000 --> 27:34.000
The real time communication, I mentioned already, forward secrecy and so on.

27:34.000 --> 27:36.000
It's like, it's a different setup.

27:36.000 --> 27:41.000
You know, so it's not like we cannot do other things and so on.

27:41.000 --> 27:48.000
But as everything in cryptography, it really makes sense to think about it.

27:48.000 --> 27:54.000
You know, to have some process and not just jump to whatever kind of scheme you have in mind that might be great.

27:55.000 --> 28:00.000
And so we are kind of bound to using proven things.

28:00.000 --> 28:06.000
Agreed with several other players checked by many experts and so on.

28:06.000 --> 28:12.000
And rather move slowly, then fast and unable to decrypt.

28:13.000 --> 28:17.000
So, for many questions, I think we are at the end of the session.

28:17.000 --> 28:19.000
You can maybe take some stuff offline.

28:19.000 --> 28:21.000
Thank you very much for watching.

