support@rooktalk.com
RookTalkRookTalk Download

Technical: what an eavesdropper gets, how the voice changer works

This page explains how RookTalk uses encryption, where keys are kept and what the server can see. It also covers how the voice changer works and where its limits are.

What happens if someone is in the middle

Someone watching network traffic and someone with access to the server can see different things. We cover each case below.

  • On the network. API connections use TLS, and real-time media uses WebRTC's transport encryption (DTLS-SRTP). Media in private rooms, and your video calls and screen shares with a friend, are also end-to-end encrypted (AES-GCM). Someone watching the network can see which addresses you connect to and when.
  • Access to the server. The room key needed to decrypt a private room's voice, messages and files is never sent to the server. The server also holds data that is not encrypted, such as room names and user and connection details. The full list is in the privacy notice.
  • What the RookTalk team can access. The secret key of a private room is never sent to the server. Messages in public channels and messages reported for review can be read by the team. Other data we process is described in the privacy notice.

How the voice changer works

The voice changer comes with Premium. It changes the pitch and timbre of your voice on your device; it does not guarantee that you cannot be identified.

  • Processing happens on your device. With the voice changer on, RookTalk sends only the changed voice to the room.
  • Pitch and timbre. The pitch and the timbre of your voice are processed separately. Pitch makes a voice sound deep or high; timbre gives it its character.
  • The pitch moves. Eight semitones down for the deep voice, eight up for the high one. Your average pitch, your pitch range and the melody of your speech all change.
  • Changing the timbre. The components of the voice called formants are processed to change its character.
  • Fine detail. Some frequency features of the voice are changed. This does not guarantee that speaker-recognition methods cannot recognize you.
  • The transform is not fixed. Every few seconds the pitch and formant ratios drift slowly toward a new random target, with a light vibrato on top.
  • Comparison. The voice changer makes your voice sound different. It cannot be said to stop a person or software from recognizing you.
  • What we do not change. What you say, your choice of words, your accent, your rhythm and the sounds in the background. You can be recognized by those; the voice changer protects the voice itself, not your speaking habits. The server's join and leave records (which account, which room, when) are also untouched by it.
  • Delay and loudness. The processing delay and the loudness can vary with your device and the settings you choose.

Sign-in and password

  • Sign-in key. With the current sign-in method a key is derived on your device from your password and e-mail address (PBKDF2-SHA256, 210,000 rounds). The server stores a hash of that key (scrypt) to check it. Backups protected by your password are encrypted with a separate key.
  • Older accounts. Supported older accounts move to the current method at a successful sign-in.
  • Your saved rooms and your private message key. Both are sealed with a separate key derived from your password (different salt). The copy on the server is this sealed form, and the backup of the private message key is optional and can be turned off. If you forget your password these two cannot be opened; that is because we do not know your password either.

Rooms

  • The invite code. The first part is the six-character room code. The second part is the secret key (16 characters, 80 bits). The server stores the room code and the data it needs to check a join; it never receives the secret key itself.
  • Voice, camera, messages and files. A private room's voice, camera video, messages and files are encrypted using the secret key in the invite code. Message and media encryption run in separate components.
  • The invite link can be renewed. When the owner renews it, earlier invites stop working. The new key is passed to those in the room in encrypted form, and the old chat history and files on the server are deleted.
  • Roles live on the server. Who owns the room, who moderates, who is muted: the server writes these into the participant data and only the server can change them. A device id counts only when it comes with its own key; naming someone else's device id grants nothing.

Private messages and invites

  • Every account has a key pair. It is made on the device (ECDH P-256). The key two friends share is derived from your own private key and the other side's public key; the server carries public keys and cannot compute the shared one.
  • Message checks. Private messages are encrypted bound to the sender's and the recipient's identity (AES-GCM additional data) and carry a time stamp and a one-time number. The app uses these to reject messages that were changed or already processed.
  • Key change warning. Your device records your friend's key. If the key changes, you are asked to confirm before talking again. Before you accept a new key, compare it with your friend over another channel.
  • Room invites are bound too. An invite you send a friend is encrypted with the key the two of you share and bound to sender, recipient and room. The server cannot produce an invite in your name.
  • Video calls. Each pair of friends gets a media room of its own. Video and voice are end-to-end encrypted (AES-GCM) with a key derived from the key you two share, a different one from the screen share's. The server checks the friendship and the account at every join; after an unfriending or a password change an old join token no longer works.

Direct Connection

  • What it does. When the app's own addresses are blocked or throttled, it carries the app's traffic to our server through an encrypted tunnel (WireGuard). Only the app's traffic goes through it; the rest of the computer is untouched.
  • Connection key. A key pair for the tunnel is made on your device. Only the public key goes to the server.

Exactly what the server holds

  • In the clear: your account's e-mail address, display name and username, profile photo, plan, room names, when you joined and left rooms, device ids and the IP address you signed in from (90 days in the activity log, for the life of the session in the session record).
  • Encrypted, key with you: room chat and files (for as long as the room owner chose, 30 days at most), private messages, your saved room list, the optional backup of your private message key.
  • Not sent to the server: the secret keys of private rooms and the plaintext of end-to-end encrypted messages. Messages in public channels and content you report are outside this.

Questions

With the voice changer on, is my real voice recorded anywhere?

The voice change happens on your device. With the feature on, RookTalk sends the changed voice. This does not cover what other apps on your device record.

Can speaker-recognition software match the changed voice to my real one?

The voice changer changes some features of your voice; it does not guarantee that speaker-recognition software cannot match you. Your choice of words, accent and way of speaking can also give you away.

If your server were taken over, could my rooms be listened to?

The server forwards audio frames without opening them and the room key is not on it. Whoever took it over sees encrypted frames and room names; they cannot open the content. To enter a room they would need the invite secret, which is not on the server.

Does the Support channel use end-to-end encryption?

Messages in the Support channel are passed on to the RookTalk team; the channel does not use end-to-end encryption. Private rooms and private messages are end-to-end encrypted.