安全合规对于即时通讯技术至关重要。为了提供安全可靠的云服务,声网遵守不同国家、地区和行业的合规要求,并且已通过 ISO/IEC 27001 认证。
为此,即时通讯服务内置了安全措施防御即时通讯场景中的常见攻击。本页介绍声网推荐的即时通讯服务的安全最佳实践,如下表所示:
防护措施 | 是否默认启用 | 推荐场景 |
---|---|---|
通道隔离 | 是 | 所有即时通讯场景。 |
Token 认证 | 是 | 所有即时通讯应用。 |
加密 | 是 | 所有即时通讯场景。 |
通道架构是第一内置保护层。即时通讯服务的通信模型包含三种聊天类型,即单聊、群聊和聊天室。即时通讯服务为每类聊天类型都创建了独立隔离的数据传输通道。所有通道在逻辑上相互隔离,只有来自同一 App ID 的通过身份验证的用户才能加入同一通道。
第二层保护是通过动态 Token 认证系统实现身份认证。Token 是一种短期访问密钥,由应用的后端服务器生成,允许用户通过应用的验证后访问即时通讯服务。
即时通讯服务提供不同权限的 Token:
要生成用户权限 Token,需要提供唯一信息,包括 App ID、App 证书、uuid
以及 Token 过期时间。
开发者可以在声网控制台开启 Token 认证系统。也就是说,开发者在创建项目时,将鉴权机制设置为安全模式:APP ID + Token(推荐)。设置完毕,主要证书默认启用,可用于生成临时 Token 和正式 Token 进行鉴权。若有用户登录即时通讯服务,需提供有效 Token。
第三层防护为加密。即时通讯服务支持加密的数据传输和数据存储。
用户与即时通讯服务器之间的通信使用传输协议加密,例如即时通讯服务的私有传输协议、安全传输层协议 (TLS) 和 Web Socket Secure (WSS)。即时通讯服务产生的用户数据和消息使用 AES256 加密后存储在指定的数据中心。即时通讯服务器仅在需要信息以实现其收集目的时保留用户信息,如下表所示:
数据类型 | 保留时间 |
---|---|
控制台帐户数据 | 直至账号删除或连续 180 天未使用。 |
消息(历史消息、漫游消息、离线消息等) | 取决于你使用的即时通讯服务的套餐版本:
|
为满足不同国家和地区的法律和法规要求,即时通讯服务支持服务区域隔离,防止指定服务区域的用户隐私数据跨境传输。
下表为即时通讯服务的数据中心的地理位置和服务区域的对应关系:
数据中心 | 地理位置 | 服务区 |
---|---|---|
北京 | 北京 1 区和北京 Vip6 区 | 国内 |
新加坡 | 新加坡 | 东南亚 |
欧洲 | 德国法兰克福 | 欧洲 |
美东 | 美国弗吉尼亚州 | 美东 |
要使用即时通讯服务,你需要指定一个数据中心。选择数据中心后,对消息服务器的 RESTful 请求和 SDK API 请求都将指向对应的数据中心,你的业务数据也存储在该数据中心。国内的应用只能使用国内的数据中心,支持全球接入,而且数据中心一旦选择将无法更改。即时通讯服务不支持跨服务区的数据迁移。
通过该列表,你可以快速检查需采取哪些保护措施确保你的应用程序和用户的安全:
在声网控制台开启 Token 认证。
在后端服务中部署 Token 服务器。
保护 Token 服务器,仅允许应用的后端服务器连接至 Token 服务器。
合理设置 Token 过期时间。
为了加强安全性,使用随机生成的 ID 作为即时通讯服务的 username
,请勿使用真实用户 ID。