• YS端对端之间SSL通信安全问题


    1、简介:

             传统的互联网,SSL通信主要基于客户端和服务器之间,在物联网时代,端和端之间的加密通信将变得很普遍,在YS业务中主要的端和端通信为:

    1)、客户端(移动APP,YS工作室和web)和设备之间的双向通信。

    2)、设备和设备之间的双向通信。

    为保障用户通信安全,端和端之间的通信实施SSL通信。

    注:实际上是基于客户端的hik的SDK和设备之间的通信,使用了hik SDK的客户端都可以和hik的设备进行通信。

    主要的场景图如下:

    image

    2、业务需求:

             端和端之间能够实现基于长链接和短链接的SSL双向通信。

    3、风险分析

    1)、设备出厂使用的都是相同的证书,攻击者可以在任意一台设备上导出证书,进而对客户端向设备发起的SSL通信进行中间人劫持攻击,由于该证书包含公、私钥,故能够解密SSL握手通信过程截取对称密钥,同时也无法用证书来判断目标设备的真伪,同样的,设备证书也可以劫持设备和设备之间的SSL通信。

    2)类似地,如果hik SDK也使用一样的证书,攻击者也可以导出hik SDK内置证书,劫持设备向客户端发起的SSL通信(比如报警信息推送)。

    4、解决方案:

    1)、客户端SDK和设备厂商时不带证书,客户端第一次使用SDK和设备第一次启动时自动生成证书,同时保留生成刷新证书的接口。

             优点:安全性高,软件层面改动小,可实客户端和设备现双向的证书有效性验证。

             缺点:客户端SDK在低端手机上生成证书时间会比较慢,第一次使用用户体验较差,而设备由于在出厂前必须经过开机测试,故出厂时已经在设别内生成证书,所以在用户这边不受影响,但在供应链环节会增大生成时间,影响产能。

    2)、提供动态证书生成接口,出厂设备或发布的客户端SDK包拥有一个默认证书,在使用默认证书产生通信后,可以调用该接口更新设备证书。

             优点:安全性较高,扩展性好,也可实客户端和设备现双向的证书有效性验证。

             缺点:软件开发成本高,第一次使用默认证书进行SSL通信时还是可能会被劫持,且只能做成可选项,用户基本不会使用。

    3)、模拟SSL通信协议,每次SSL通信均动态生成非对称加密算法(比如RSA)密钥。

             优点:安全性高,能解决对称密钥被解密获取的问题。

             缺点:软件开发成本高,需要熟悉SSL协议,且不能用来验证证书有效性。
  • 相关阅读:
    Java流程控制语句
    Linux文件过滤及内容编辑处理
    Java运算符优先级
    Java位运算基础知识
    【Linux】【FastDFS】FastDFS安装
    【Linux】【redis】redis安装及开启远程访问
    【Linux】【sonarqube】安装sonarqube7.9
    【Linux】【PostgreSQL】PostgreSQL安装
    【Linux】【maven】maven及maven私服安装
    【Linux】【jenkins】自动化运维七 整合sonarqube代码审查
  • 原文地址:https://www.cnblogs.com/fishou/p/4167301.html
Copyright © 2020-2023  润新知