Dear viewer, these subtitles were generated by a machine via the service YouTube and therefore are (very) buggy. If you are capable, please help us to create good quality subtitles: https://c3subtitles.de/talk/2534 Thanks!
[Music]
thumbs up and so I'm happy to uh to
introduce Matias UT to you and uh the
call messenger resilient communication
during blackouts and internet shutdowns
and I give the stage to you
Matias thank
you welcome everybody um in
2011 we started the project
colnet um mainly
because this has happened before in 2009
um it was called uh the Green Revolution
in um uh Iran and it was called also the
first social media
Revolution because thousands of Twitter
users um just colored their Twitter
profile in green and when aler later
then um made a survey over who was
really kind of using Twitter within Iran
there were I think about 60 accounts and
all those other people were outside so
um what is such a social media
revolution in
2011 um the Arab Spring started and it
was called again a social media
Revolution but in all of the cases
during the peaks of the revolutions the
internet was shut down for several days
and the movements and the revolutions
even grew and we have seen that in many
cases so 5 years later uh there be there
came also a critical articles about that
however internet shutdowns is not
something which is not happening often
this is just the list of Internet uh
shutdowns from governments uh this year
and it's from several sources that we
have collect Ed that and it was mainly
happened because the government was
facing opposition an exception to that
is for sure Ukraine um where it was
introduced by
Russia but how to communicate then when
there is no
internet this is our normal Network
structure that we usually have now we
have uh our device is uh connected to an
ISP the ISP is connected to a backbone
and peering with some others and then so
when we want to send to an other
computer a message then it's usually
kind of traveling this way to a server
in the internet and then back even when
this um person is sitting next to
us
so we um invented call to be able to
communicate directly from endtoend
devices and how can that happen
well we want to mash them uh together
just into one big mash and uh enable
over Wi-Fi and other means the uh
Communication in 2012 we released our
first version and since then we have uh
gotten user feedback and also supported
people in many many countries including
Germany Switzerland Greece Tunisia
Taiwan India Syria
Egypt and
Iran we have Rewritten the project on a
completely new stack uh in the last two
years um we want to be full stuck which
means we um support all the devices
people usually use that they have at
their hands so it's not something for
the server it's really something for the
antiviruses which means we have a a
Linux client we have an andry client the
windows client an iOS client and the Mac
OS
client we have three different modes of
interconnection Bluetooth low energy um
we implemented that uh uh only by last
last week um uh aan mode where you are
automatically found within um a local
area network uh with the other users
when when there is no client isolation
such as ontis camp unfortunately um and
a static mode where you can statically
interconnect yourself with some nodes
this can be a node kind of somewhere in
this camp or in the internet uh it just
needs to be reachable and when it's
reachable you are interconnected and all
those devices that are somehow
interconnected are meshed
together in order to also make you as
the user or an other user aware of the
situation how you are interconnected so
your own view we buil the network view
that shows you that and also all the
users that are
interconnected um are automatically
discovered and shown in your contact
list we have a shout out mode so you can
just um send a public message to
everyone at this moment interconnected
within the
network we of course have a private chat
which is of course fully end to endend
encrypted we also have a group chat
which is all also fully endtoend
encrypted and you can add as many people
as you like we try to make the
onboarding
process as simple as possible so there
are basically two steps the language
selection which is usually done
automatically due to the language you
have on your device and then the
entrance of a username which can be any
UDF uh string even with spaces and so on
because you are not identified within
the network via your username but via
the hash of your public key which is an
idea and is used for routing and
everything so these are our features and
I would like to try um a quick Live Test
[Music]
let's see what is
happening
so here we already did the onboarding
okay so we have a bright mode and a dark
mode and
unfortunately I have chosen the dark
mode so let's see whether we can change
that so we are here on the network you
you see how I am interconnected at this
very
moment of course there is a set page we
have here the language selection um it's
really easy to add new languages at the
moment I don't know we have over 10
different languages you're very welcome
to just add new ones
um so the seam is just the default theme
I would say we switch
to something more visible okay
um then um we have here the shout out
mode where we can just send a public
note which will of course not be
um encrypted but it will be signed so
it's uh it it it is absolutely clear
that it's coming from
you um let's send a quick
hello
um let's have a a a look who else uh is
here okay Bob is here maybe we can start
a chat with someone else Alice is
here
so here when we go on the user profile
of Alice we see um the the ID
identification and we also see the
public key now we can just
start um a chat with
Alice by sending to Al a
message so now this message um uh was
sent to Alis which is this Smartphone I
have over here and uh Alis received it
and at this very moment uh that we did
also the uh security um uh the crypto
handshake it's we call it zero round
encryption which is maybe a bit
misleading it just means that the first
message is already encrypted but it's
encrypted um not uh symmetrically but uh
via your private key and the other one's
public key and then um this is part of
the noise handshake that we are doing
and afterwards you have your um uh a
static um uh communication encryption
key that you both share and we see that
this uh message has been arrived uh at
Alice uh via
this so let's see
here I
also have the possibility to how do I do
that
to take a
selfie
and and send uh pictures from here um to
an other device they will just appear as
any other um chat message of course you
can also send files and so on um and
when we have a look uh who else is here
here for example that then we can see
that Bob is interconnected with Alice um
and this is done because Bob is an other
mobile which is interconnected over
Bluetooth low energy um with Alis and
for example we can also create a new
check group to show this feature maybe
quickly
so let's call
it let's call it
Camp I created I can select the users
that I would like to invite into these
chat
groups the users get sent uh an
invitation um the invitation is shown
then they can accept it or of course
deny it um and then um we see that that
the people have
joined um the
chat
so what else we also have an internet
overlay which means that um you can have
you can have static notes um in the
network and you can you can add your own
and you can connect to them or
disconnect to them so uh all this kind
of stuff and what happens now if
somebody is not online which can happen
really easily for that we have um built
a a second level in our routing protocol
which is called delay tolerant messaging
this means that when somebody is not
available you first check is there some
social distance or social proximity to
another user let's say you are in the
same chat group um with other users then
this user would most probably volunteer
to transport this package now message
which is fully encrypted the user cannot
read it just knows to whom it needs to
send it and you can also manually say
okay if if the user is not available I
want to send it uh to this other user
and this you other user will volunteer
uh to carry the packages to um the other
uh
person I guess I went through quite a
lot so let's jump back to the
presentation maybe a very quick look
into the
technical um setup of how we have done
that
um as we tried to be able to run on
literally every device we created a
library in the background which is
called lip
call um lip car is written in
Rust um under the hoot for some of our
messaging we are using uh rustly
peer-to-peer this G gives us uh already
an trusted and transport encrypted um uh
connection in that uh we have user
Discovery identity creation uh the
signing and the encryption of the
transport um the management and storage
we added extra to that the the messaging
the group chat the file sending and so
on
so and for the interface we have chosen
other technology which is quite okay
it's a flutter which is an open source
project also that runs on all these five
um operating systems that we support so
it's for most of the things it's right
at once and it it runs everywhere of
course there are always things that you
need to
tweak maybe uh quick look into um our
future
um we are shortly before the release of
the call metrix Bridge um to
interconnect call also with other
Messengers um we of course want to be
able to uh run on open WT this is still
uh too um we are working and uh still
are looking for more collaborators to
find good ways
to make user discoveries in really large
Wireless Community mesh networks because
what we usually use and what you usually
use at home for user Discovery is called
mdns mdns is fine if it's kind of a
rather small network and to find your
printer and so on but it does not
work well in um large mesh networks and
then that this is something we really
want to solve
and which would um be very usable for
many peer-to-peer
projects we also want to extend our
routing protocol to a multihop multi
route uh delay tolerant networking we
want to have public file sharing voice
and video
chat so are there
questions thank
you
I think this one was first then you and
the rest we see thanks so much for the
great presentation and for this awesome
work um I'm just curious how do you help
ensure that people in countries that
experience Internet outages um and still
and use uh this tool can you repeat your
question how do you engage communities
in countries that are impacted by
Internet outages or Internet shutdowns
um we are not engaging um they us
contact us it's all published uh on
GitHub we are in some of the stores you
can download the apps usually then we
get um tickets on our GitHub we get
contacted by email and they ask
questions so it's it's the other way
around the other SE hi
um are you connected to the pucha store
that that's used in Iran and a few other
places
um there are quite a few Iranians that
send us a lot of great testing feedback
and also pull requests um I don't know
which group they do belong to
okay okay there's one over
there hi thank you for the talk um kind
of interesting pro project from a
resilience point of view but as you
mention Iran quite a lot how do actually
prevent from someone in the network
especially from broadcasting to just uh
fingerprinting the users because
fingerprinting those users basically
equally like fingerprinting potential
protesters and bringing them into
jail yeah that's true and I guess this
is also one of the
points for which we have built call we
have build call for communication if you
don't want to communicate if you don't
want to be visible to to the people next
to you don't use it use something else
so it's great to use it in situations
where you want to communicate and you
want to find other people and you want
to be able just to kind of shout out
something I
mean finding out what somebody or in
which way somebody is
communicating is usually when you have a
network overview possible so when you
are locally it already gets a bit more
difficult because you need there to be
in place when you know or you expect
that people can do that uh then kind of
you can reflect on it uh what the risks
are and whether you want to do that or
not but also one of the big problems we
always see is that when the onboarding
process is really complex nobody's doing
it there are private Messengers that
kind
of yeah it it takes a while until you on
board and we test it since since quite a
long time um and then people are not
using it so especially when you are also
it's not it's not only for Uprising but
also disaster recovery and so on there
you don't have time so you don't have
the possibility maybe you have some
structures but when it's an entire
population then these structures that
you may be buil may be very very small
and are not useful for larger
Communications do you have a
followup you have 10
seconds okay thanks for the
clarification just please make very very
clear on your website that it's not for
privacy reasons it's just to be able to
communicate please um I would not say
it's not for privacy reasons because
everything is transport encrypted
everything is end to endend encrypted
except what you do in public chats and
this is clearly clearly note that this
is public and with almost all the other
Messengers even with the very private
ones you can when you survive a network
see that this user was communicating and
even most probably to whom this user was
communicating
so this is always a bit a chicken and
act problem
um yeah maybe going a little in the same
direction I was uh if I got it right the
identifier for routing will always be a
hash of the public key right and there
have been there are approaches like
Simplex where they use like temporary
identifiers would that be possible in
such a uh mesh setting to negotiate
these because that would mean that every
device in network would have at least
access to the metadata of who
communicated to whom right so is that
possible in a mesh setting and is it on
the road map to let NE neate temporary
identifiers um no this is not on our
road map um it would of course be very
interesting to think about that but when
you want to solve two things which means
direct communication and delay tolerance
you cannot change your identifier
because when you change your identifier
you have no idea where the package
should go also when you mes and it has
to travel uh you when you're Chang your
identifier you have no idea where the
things should go so this this is
something which we kind of do not have
on our scope and
yeah okay last
question hi um have you had any problems
with malicious users on the network
flooding the network
or basically clogging off the pipes
between the devices given the fact
you're store and forwarding devices
because I've seen this quite a lot in
haggle in content set networking name
data networking that this is a
problem this is actually something we
have very high up in our um to do to
really do uh spam protection very well
to do blocking we have the feature to
block other users so this is already the
possibility to do I guess as we only
release this new version which which
works quite different from the first
that we have um uh last September and I
would say it's now
stable to use it we did not have these
problems yet but they will
come okay this uh we are out of time
unfortunately but maybe a final uh word
where can people find you if they want
to keep uh chatting and exchange on on
the two um there is this website uh
call.net um on it is everything there is
the the link GitHub repository we have a
a matrix discussion uh group uh
yeah okay very good then thank Matias
again for his
presentation you're
[Applause]
[Music]
welcome