Mles logo

MlesTalk is a mobile application which uses Mles (Modern Lightweight channEl Service) - Websocket protocol to exchange information.

MlesTalk at Google Play

About MlesTalk application

MlesTalk is an open source real-time messenger between two or more users on a same channel. Instead of just seeing the finalized messages, see how others on the same channel write their messages, character by character. Avoid centralized large corporation services, have the freedom to pick freely the server to connect to, or run your own.

In addition to username and channel, you'll need to pick a shared key with other channel users. The key provides lightweight end-to-end security for the messages on the channel.

Retro-feeling for those Unix-era users who have used the magnificent Talk program.

Connectivity is based on open Mles-Websocket protocol. Please see http://mles.io for more information.

MlesTalk is an open source project. Application UI source code is available here. Mles-protocol based messaging webworker is available here. A sincere thank you to all open source library developers, without you this application would not exist!

Please see Reddit /r/mles channel for general discussion around Mles.

About Mles.io server

Mles.io has a service server support implemented for the MlesTalk application and this server is suggested by default to be used by the MlesTalk application. Mles.io provides a limited history of messages for users during initial connection, if messages already exists on the channel. The Mles.io service is provided as is as a best effort service without any liability. The MlesTalk application user is free to select any server they wish to connect to, as long as it supports Mles-Websocket protocol.

Mles.io will always run the latest released open source version of the Mles-Websocket server service called arki-server and it does not collect any information of MlesTalk application users. Application code is also open sourced under arki-server through the WebUI. The users are always welcome to review the source code of arki-server and establish their own Mles-Websocket server service. Please see http://mles.io/legal for the full Privacy Notice and other legal information.

Frequently Asked Questions

What kind of network connection MlesTalk needs?

MlesTalk uses Mles-Websocket protocol over Transmission Control Protocol (TCP). You should be able to use it with any internet connection. If your connection is not stable, you may need to reconnect from time to time.

Are sent or received messages saved somewhere for later retrieval by the MlesTalk application?

Messages are not saved by the application and are in practice lost when the MlesTalk application is closed from application point of view. At least some of the messages on the channel can be restored from an Mles-Websocket server during reconnection to the channel, if the server supports message history.

How are the messages secured?

All messages are secured with symmetrical Blowfish with max key length of 56-bits with CTS+AONT and Blake2 HMAC. Messages can be opened easily only by the channel users who have the channel name and the key available. These security measures will not protect messages from serious decryption efforts, if messages are obtained by a 3rd party. The Mles-Websocket server, which forwards messages on the selected channel, is not aware of the key used on the channel.

56-bit key size equals 72,057,594,037,927,936 possible keys. As Blowfish is designed to have large initialization delay, the 56-bit key size combined with AONT guarantees lightweight security for messaging. In practice, this should mean that brute force decryption efforts without special arrangements take long enough that it is not a feasible choice for a possible attacker.

Considering block size, Sweet32 birthday attack is the worst known attack at the moment against block ciphers with 64-bit block size. It needs several hundreds of GBs of traffic to be effective. Thus, it does not really apply to a messenger without application level keepalives, like MlesTalk.

I cannot log into channel with the same user name twice, i.e from the web GUI. What can I do?

Please use a different user name for simultaneous logins on the same channel. It is a feature of the Mles protocol that the user name is restricted to one active at a time.

I'd like to have more than one channel already now. Anything for that?

You can open several channels to browser tabs from the QR-code link. Another option is, if you accept that you use it at your own risk, to try an app cloner application and have a cloned MlesTalk application login to different channel. You should be able to use it as original software. Please note that cloned applications do not usually get any upgrades.