Skip to main content
  1. Posts/

From Arresting Durov to Creating Your Own Messenger. Cloudy - Part 1.

·5 mins· loading · loading · ·
Technical Flutter Dart
Table of Contents

I don’t know what could be more satisfying than realizing that you are communicating with someone: a) In your own messenger; b) In a messenger where you know the encryption algorithm and realize that in case of any leak, your data is physically almost impossible to compromise.

This is probably one of the developments that I am truly proud of. So much time and effort, not just mine, has been invested in this project. It’s hard to even approximate.

Acknowledgements.
#

To everyone who has helped me in one way or another in the creation of this project, I extend a big thank you. In particular, thanks to Celestian for participating in the development of the messenger and the protocol in particular. For their interest in my initiative and willingness to spend their resources on Cloudy. For patience in listening to my ideas and their constructive criticism. Probably, if it wasn’t for her, I wouldn’t have this protocol or the app in general.

This post will be a bit different from the others, both in its structure and content, as well as the presence of more than one part. In the first part I will tell you how I came up with this idea and why I decided to realize it. And in the second part, for those enthusiasts who are interested in itishechka, I will try to present the information in a more technical way. Specifically this part will be devoted to the idea.

Interest in cryptography.
#

This project is not so much about talking, messenger as a way to exchange information, but more about data encryption and in general what it looks like inside. A long time ago, I started to think that our life without encryption is very tight, not specifically in our time, but in general. From ancient times to us. Everyone has had it, when you want to say something to one or more people, as if in your ear, without having the physical ability to do so. This is far from news. What is more interesting is how to do it. Some year I got a video in the YouTube recommendations, where they told me what Enigma was and what it did during the 2nd World War. At the time I had little idea what it was, so for the sake of interest I decided to watch it.In the end, it turned out to be such a clever mechanism that even now it makes an impression. By the way, during WW2 it took several years to crack this mechanism. After this video I started digging further in this direction article after article, video after video and so on. It was probably that video that started my interest in everything related to cryptography.

The idea of creating Cloudy.
#

After the events of August 24, 2024, there was a global panic that the servers would open and read all correspondence. Hardly many people think about how exactly they are protected and why they trust this protection. Sometimes it is enough just to hear: ‘The safest in the world’. So, it is not for me to explain it, but partly it is almost unrealizable, because messages, even if not encrypted by end-to-end encryption (in ordinary chat rooms), they still have the appearance of unreadable text.

“The article claims that Telegram stores user data as plain text. This is not true. Everything stored in the Telegram cloud is >securely encrypted.”

It is difficult to say how it is ‘securely encrypted’, as there is not much information about it on the Internet. However, by default, end-to-end encryption is not used (encryption where only the sender and receiver can read the content). And then I wondered: if you don’t look at the commercial part, why doesn’t anyone make their messengers very secure? It’s just more pleasant, isn’t it? And then I decided: why don’t I create my own product, my own cryptographically secure messenger? With this thought, you could say, and Cloudy begins. I, like others, tend to give everything a special meaning, because just creating an application would be very boring.

There is an equally interesting story hidden in the name Cloudy (from English ‘cloudy’). If we imagine clear cloudy weather, with only clouds in the sky and a blue sky and bright sun hiding behind them, we realize that something important is going on behind the clouds, even if we can’t see it. So it is with me: each user, creating his own keychain, forms a cloud that encrypts all the data passing through it. Only he can see what’s going on behind those clouds. As a result, all clients build a big, impregnable sky to other eyes.

The beginning of the creation and the first difficulties.
#

Due to the fact that I hadn’t really crossed paths with real-time chat before, it was unclear what to do, where to start, how to do it at all. And even more unclear was the fact that I didn’t just need to send messages and store them somewhere and then show them. I had to store them encrypted -> show them decrypted -> send them encrypted. I had one big task in front of me - to create a working product. On August 29, 2024, the first lines of code were written, and the project moved from the idea to the implementation stage.

Finish line and open beta testing.
#

After ≈2 months I have a ready messenger, so far with only one feature - a private dialog with its own encryption algorithm. Also little things: the ability to allow/disallow adding myself to contacts via my public link, see my encryption keys… I would not have believed myself if I had read a similar text, so the happy owners of Android OS phones had the opportunity to try it in action with their own hands. So anyone who wanted to test Cloudy in action, this action was limited to two or three weeks (start next Monday), then I turned off the project, for there will have to pay.

Cloudy Image
What the app looks like in action

UPD: You can look at the source code now.

kmdshi/cloudy

Dart
3
0
Author
Bogdan Lipatov
Middle Flutter Developer & Knowledge enjoyer