为了确保对话的私密性,Duo 对通话采用了端到端加密技术。
- 只有通话双方知道通话内容。
- Google 无法读取或保存通话的音频和视频。
端到端加密是针对通信数据采用的标准安全防护方法。每个 Duo 通话都会受到端到端加密的保护,因此你无需自行启用这项功能,也无法停用该功能。
通过加密确保数据的私密性
加密会使用代码来遮盖数据,且需要密钥才能对其进行解码。
对于 Duo 通话,端到端加密意味着通话数据(音频和视频)在你的设备和联系人设备之间传输时会进行加密处理。经过加密的音频和视频只能使用共享密钥来解码。
关于此密钥:
- 该密钥是一串数值,创建于通话双方的设备上,且只存在于双方的设备上。
- 该密钥不会与 Google、任何其他方或其他设备共享,
- 通话一结束就会消失。
即使有人获取了通话数据的访问权限,由于没有密钥,他们也无法解读数据。
Duo 会保留一些通话信息以用于问题排查
为了解决问题,Duo 会使用通话的部分信息,如:
- 通话在何时、因何故出现中断或延迟
- 通话双方的设备 ID
- 群组通话参与者的电话号码
这些信息会在 Google 服务器上安全存储一个月左右。
共享密钥会保留在来电者的设备上
你的设备会使用共享密钥来解密通话的音频和视频。该密钥创建于通话双方的设备上且在通话结束后会随之删除。此密钥不会与任何服务器共享。
共享密钥的必要条件
要计算共享密钥,每台设备需要:
- 一个私钥:仅保存在你自己的设备上
- 一个公钥:保存在 Duo 的服务器上
首次设置 Duo 时,你的设备会创建多个私钥/公钥对。这样就可以为多个通话进行端到端加密了。
如何创建共享密钥
- 设备会交换公钥,但不会泄露私钥。
- 接下来,每台设备会使用各自的私钥和来自其他设备的公钥去计算共享密钥。这样的一个数学过程称为密码学。
Google 服务器无法解码你的通话
当你呼叫某位 Duo 用户时,你的通话的音频和视频通常直接从你的设备传输到对方设备,我们把这种连接称之为点对点。该通话不会经过 Google 服务器。
但有时点对点连接并不可行,例如某个网络设置禁止该连接。这种情况下,会通过 Google 中继服务器将通话的音频和视频在双方设备之间传输。该服务器无法解码你的通话,因为没有共享密钥。
群组通话在服务器上会保持私密状态
群组通话同样采用了端到端加密技术。为了确保高质量的群组通话,通话会经由 Google 服务器传输。
该服务器会在群组成员之间中转通话的音频和视频。要中转通话,此服务器需要使用你通话的相关信息,例如视频是从哪台设备发送的。该服务器无权访问端到端密钥,也无法解密媒体数据。
群组通话会使用多个密钥
如果通话要经过服务器,每个群组成员的设备会自动使用如下密钥:
- 用于加密通话音频和视频的发送者密钥。当有人发起群组通话时,每台设备都会与其他设备交换该密钥。
- 用于加密通话相关信息的客户端到服务器密钥。每台设备都会与服务器交换此密钥。
密钥的作用
这些密钥用于:
- 加密通话的音频和视频,以便只有群组中的其他成员可以听取和查看。
- 解码群组通话中其他成员的音频、视频和信息。
在群组通话中,密钥可能会发生更改
如果出现以下任一情况,所有人的设备都会交换新的发送者密钥:
- 有人退出群组时
- 通话期间,有新的人加入群组时
如果群组有成员未立即加入群组通话,他们的设备仍可以使用所有成员的发送者密钥。这样一来,该成员就可在通话进行时随时加入。
群组通话结束后,密钥也会随之删除。