To keep your conversations private, Duo uses end-to-end encryption for calls.
- Only people in a call can know what’s said or shown.
- Google can’t see, hear, or save your call’s audio and video.
End-to-end encryption is a standard security method that protects communications data. It's built into every Duo call, so you don’t need to turn it on yourself, and it can’t be turned off.
Encryption keeps your data private
Encryption masks data with a code, and a key is required to decode it.
For Duo calls, end-to-end encryption means that a call’s data (its audio and video) is encrypted from your device to your contact’s device. The encrypted audio and video can only be decoded with a shared secret key.
- Is a number that’s created on your device and the device you called. It exists only on those devices.
- Isn’t shared with Google, anyone else, or other devices.
- Disappears as soon as the call ends.
Even if someone gains access to the data for the call, they won’t understand it because they don’t have the key.
You can learn more in Duo's end-to-end encryption technical paper.
Duo keeps some call info to troubleshoot
To help fix problems, Duo uses some info about your calls, like:
- Why and when a call is dropped or delayed
- The device IDs of the caller and receiver
- Phone numbers of people in a group call
This info is securely stored for about a month on Google servers.
Shared secret keys stay on the callers’ devices
Your device decrypts your call’s audio and video with a shared secret key. This key is created on your device and your contact’s device and is deleted after the call ends. It’s not shared with any server.
What’s needed for a shared key
To calculate the shared key, each device needs:
- A private key, which is saved only on your device
- A public key, which is saved on Duo’s servers
The first time you set up Duo, your device creates several private/public key pairs. This way, you’re ready for several end-to-end encrypted calls.
How shared secret keys are created
- The devices exchange their public keys but don’t reveal their private keys.
- Next, each device uses its private key and the public key from the other device to calculate the shared secret key. They use a mathematical process called cryptography.
Google servers can’t decode your call
When you call someone else on Duo, your call’s audio and video typically go directly from your device to their device. This connection is called peer-to-peer. The call doesn’t go through a Google server.
However, sometimes a peer-to-peer connection isn't available, like if a network setting blocks it. In this case, a Google relay server passes a call’s audio and video between your device and the device you called. The server can’t decode your call because it doesn’t have the shared secret key.
Group calls stay private on the server
Group calls are also end-to-end encrypted. To make sure group calls are high-quality, they go through a Google server.
That server routes everyone’s call audio and video to others in the group. To route calls, the server uses info about your call, like which device the video is from.
Group calls use multiple keys
To be part of a call that goes through a server, each group member’s device automatically uses:
- A sender key to encrypt the call’s audio and video. When someone starts a group call, each device exchanges this key with the other devices.
- A client-to-server key to encrypt info about the call. Each device exchanges this key with the server.
What the keys do
The keys work to:
- Encrypt your call’s audio and video so that only other people in the group can hear and see it.
- Decode the audio, video, and info from other people in the group call.
Keys can change during group calls
Everyone’s devices exchange new sender keys if either:
- Someone leaves a group
- A person who wasn’t part of the group gets added to it during the call
If a person in the group doesn’t immediately join the group call, their device can still use everyone’s sender keys. This way, that person can join the call anytime while it’s live.
When the group call ends, the keys are deleted.