Company New Vector, whose employees also lead a non-profit organization for the protocol Matrix, announced the release of several Matrix clients from the Riot.
Matrix is an open protocol for implementing a federated network built on a timeline of events (events) within an acyclic graph (DAG). The main implementation of this protocol is a messenger with VoIP signaling support, but other uses are possible, as it is a general-purpose protocol.
The main change in the released clients for the browser and Electron wrapper (1.6.0), Android (0.19.0) and iOS (0.11.1-0.11.2) is the inclusion of end-to-end encryption for personal chats by default. Encryption is possible thanks to the Olm, which is based on the Signal messenger protocol. Group chat encryption uses a protocol extension called Megolm, which allows a message to be decrypted multiple times.
Optional encryption was first introduced in 2016. The default inclusion in experimental builds occurred during FOSDEM 2020.
Since the first release of the encryption implementation, the following features have emerged:
- a client can request keys to decrypt messages from other users' clients or from the clients of their interlocutors;
- there is now a server-side storage for client encryption keys, encrypted with a secret phrase;
- in addition to device verification by fingerprint, there is now verification using emoji symbols.
In the future, there are plans to include encryption by default not only for personal chats but also for unlisted rooms in general, including groups.
Also mentioned are:
- the introduction of a new UI for encryption;
- device verification using QR codes;
- search in the history of encrypted messages;
- final stabilization of work.
Searching in encrypted rooms is already available via the Firefox extension Radical.
To simplify working with encryption keys, the developers of the Matrix protocol introduced a mechanism called 'cross-signing'. It allows users to automatically verify other devices by using a previously verified device. With this mechanism, two interlocutors need to verify their devices only once, rather than individually for each device. The specification of this mechanism can be read on GitHub.
In addition to Riot, other clients also support encryption: FluffyChat, nheko Reborn, clients based on libQuotient (WIP), clients based on mautrix-go (gomuks), clients based on matrix-nio (Mirage and WeeChat), Seaglass (abandoned). Other implementations are in development. For clients without encryption support, a daemon for E2EE proxy is offered — pantalaimon.
Source: linux.org.ru
