Features / Messages and video calls

Working today

Messages and video calls only the people in them can read.

ZENOS Messages uses the Signal protocol. Calls run on a server you host, with the media encrypted end to end: the server forwards encrypted frames and never holds the key. Officers receive approval requests and sign them here.

Signal protocol

key agreement and the Double Ratchet, from Signal's own libsignal

Self-hosted calls

the call server forwards only encrypted frames

New key

on every join or leave, so someone who left cannot follow the call

How it works

Bind, talk, call

1

Bind

An account belongs to the device that registered it. Every request it makes is signed with its identity key.

  • Unsigned, foreign-key and replayed requests are refused and recorded
2

Talk

Messages and channels are end-to-end encrypted with libsignal. Approval requests from the PC arrive the same way.

3

Call

The call key is made on a device and handed to members only inside Signal-encrypted messages. Everyone switches to a new key when someone joins or leaves.

  • Screen sharing in a call is encrypted the same way

Proven, and what is not

What is tested, and what is trusted

Tested

Tested against takeover

  • Account binding is tested, including takeover attempts against a running relay
  • A new device takes an account over only by verifying the number already registered to it
  • Relay administration needs a token kept on the relay's own host
Trusted, not proved

Tested and listed openly

  • libsignal and the WebRTC stack
  • Without enrolment codes switched on, whoever registers a name first owns it
  • Losing both the device and the number needs an administrator to reset the account

Try it in the preview

Try it yourself

1

Open ZENOS Messages

On the PC and on your phone.

2

Start a video call

Invite a second person. The call is end-to-end encrypted.

3

Leave and rejoin

The key changes; the call continues for those still in it.