# 04 - 网络与通信

# 4.1 设备间通信

# 4.1.1 双向认证

通信双方应互相验证对方身份的合法性,以确保通信会话只发生在合法的设备间。

  • 若通信链路原生支持双向认证,应开启双向认证功能;
  • 双向认证方案应引入密钥、证书或其它机密的认证信息,防止认证过程被攻击者模拟。

# 4.1.2 防篡改和重放

通信协议应使用加密、签名或其它技术手段防范设备之间的通信内容被篡改。

  • 签名算法应基于密钥、或具备高复杂度,防止被攻击者猜解;
  • 通信协议应使用时间戳、计数器或其它技术手段防范设备之间的通信内容被重放;
  • 对于防止重放攻击的字段,应实施防篡改措施。

# 4.1.3 指令校验

设备从通信数据中读取指令,在执行具体操作之前,应对指令的合法性和权限进行校验。

  • 验证指令是否与设备状态一致;
  • 验证指令是否属于协议定义的指令集;
  • 验证指令来源是否有指令要求的权限。

# 4.1.4 数据传输安全

需要传输敏感信息时,需使用TLS等安全通信协议传输,或使用加密算法对敏感信息进行加密。

# 4.2 云端API安全

# 4.2.1 身份校验

设备相关的服务应校验设备和用户身份的绑定关系。

# 4.2.2 权限校验

云端服务应严格校验用户是否具有服务的使用权限,防止越权访问、未授权访问。

# 4.2.3 信息最小化返回

服务接口应最小化返回用户和设备的信息,禁止直接返回框架错误信息。

# 4.3 以太网

# 4.3.1 HTTPS证书校验

使用HTTPS通信时,应对服务端证书进行校验,如:

  • 校验证书是否由合法CA颁发;
  • 校验证书域名是否与访问域名一致;
  • 不应忽略证书校验错误。

# 4.3.2 DNS防护

设备端应集成安全DNS模块,并提供在云端或本地启用的选项。

# 4.4 WIFI

# 4.4.1 WIFI热点用途

设备建立的WIFI热点应只允许与设备本身通信,且应该只在业务需要时开启。

# 4.4.2 WIFI热点密码

WIFI热点不应使用固定的默认密码或空密码,应遵循一机一密或者每次动态生成。

# 4.5 Bluetooth

# 4.5.1 蓝牙协议版本

低功耗蓝牙 BLE 设备采用蓝牙链接层加密时应使用 4.2 及以上低功耗蓝牙协议版本,防止设备在绑定阶段泄露蓝牙连接层密钥 (LTK),从而导致隐私泄露或设备伪造的风险。

# 4.5.2 蓝牙Mesh协议

蓝牙Mesh的配网过程应启用双向认证。

  • 音箱和外设进行双向认证;
  • APP和外设进行双向认证。

# 4.6 安全管理

# 4.6.1 安全评估

设备使用的通信协议应经过安全评估。