1、简介:

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

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

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

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

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

主要的场景图如下:

 

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协议,且不能用来验证证书有效性。

YS端对端之间SSL通信安全问题的更多相关文章

  1. 应用java多线程实现server端与多client之间的通信

    应用多线程来实现server与多线程之间的通信的基本步骤 1.server端创建ServerSocket,循环调用accept()等待client链接 2.client创建一个Socket并请求和se ...

  2. Python_架构、同一台电脑上两个py文件通信、两台电脑如何通信、几十台电脑如何通信、更多电脑之间的通信、库、端口号

    1.架构 C/S架构(鼻祖) C:client  客户端 S:server  服务器 早期使用的一种架构,目前的各种app使用的就是这种架构,它的表现形式就是拥有专门的app. B/S架构(隶属于C/ ...

  3. [C语言]一个很实用的服务端和客户端进行TCP通信的实例

    本文给出一个很实用的服务端和客户端进行TCP通信的小例子.具体实现上非常简单,只是平时编写类似程序,具体步骤经常忘记,还要总是查,暂且将其记下来,方便以后参考. (1)客户端程序,编写一个文件clie ...

  4. WCF开发的流程-服务端和客户端之间的通讯(内含demo讲解)

    讲解技术之前,恳请博友让我说几句废话.今天是我第一在博客园发布属于自己原创的博文(如有雷同,那是绝对不可能的事,嘿嘿).之前一直是拜读各位博友的大作,受益匪浅的我在这对博友们说声谢谢,谢谢你们的共享! ...

  5. SSL、TLS协议格式、HTTPS通信过程、RDP SSL通信过程

    相关学习资料 http://www.360doc.com/content/10/0602/08/1466362_30787868.shtml http://www.gxu.edu.cn/college ...

  6. SSL 通信原理及Tomcat SSL 配置

    SSL 通信原理及Tomcat SSL 双向配置 目录1 参考资料 .................................................................. ...

  7. SSL 通信原理及Tomcat SSL 双向配置

    SSL 通信原理及Tomcat SSL 双向配置 目录1 参考资料 .................................................................. ...

  8. SSL、TLS协议格式、HTTPS通信过程、RDP SSL通信过程(缺heartbeat)

    SSL.TLS协议格式.HTTPS通信过程.RDP SSL通信过程   相关学习资料 http://www.360doc.com/content/10/0602/08/1466362_30787868 ...

  9. Tomcat6和Tomcat7配置SSL通信的比较

    <Tomcat6和Tomcat7配置SSL通信的比较> 作者:chszs,转载需注明.博客主页: http://blog.csdn.net/chszs 在项目开发过程中,尝尝会遇到Tomc ...

随机推荐

  1. spring aop与aspectj

    AOP:面向切面编程 简介 AOP解决的问题:将核心业务代码与外围业务(日志记录.权限校验.异常处理.事务控制)代码分离出来,提高模块化,降低代码耦合度,使职责更单一. AOP应用场景: 日志记录.权 ...

  2. js实现快速排序的方法

    因为面试面到了这个问题,所以写一下,加深印象,有两种方法 第一种是通过两个for循环,每一次对比相邻两个数据的大小,小的排在前面,如果前面的数据比后面的大就交换这两个数的位置,这个方法就是比较次数太多 ...

  3. iOS 控制台打印unicode 转中文汉字 UTF8String

    今天查看代码数据结构,就在控台直接打印了,soGa,我看到了什么!!!! 于是乎想到了不对劲,不对呀,之前打印都是 UTF8String的呀,怎么会这样,百思不得其姐,看了一下封装的网络类,SoGa, ...

  4. [POJ1423]Stirling公式的应用

    Stirling公式: n!约等于sqrt(2*pi*n)*(n/e)^n 另外,e约等于2.71828182845409523... 试了一下发现math库里面并不能像pi一样直接调e但是发现挺好记 ...

  5. 计算代码行数Demo源码

    源码下载:04-计算代码行数.zip24.1 KB////  main.m//  计算代码行数////  Created by apple on 13-8-12.//技术博客http://www.cn ...

  6. 如何使主机和虚拟机IP处于同一网段(内网渗透专用)

    先说一下正常流程: 1.打开虚拟机网络设置选项,选择桥接模式(Bridged)[如果是Kali 2.0的话,执行第一步后就OK了(90%)] 2.打开Kali里面的网络设置 3.设置一个ip4或者ip ...

  7. vue入门介绍

    vue:解决前端大型应用的开发,将之前几十个.几百个.更多的HTML页面集成1个html页面(单页面应用)jquery:前端方法库bootstrap:UI组件库 angular/react这两个框架都 ...

  8. mysql 表的类型

    MySQL 数据表主要支持六种类型 ,分别是:BDB.HEAP.ISAM.MERGE.MYISAM.InnoBDB. 这六种又分为两类,一类是”事务安全型”(transaction-safe),包括B ...

  9. linux下面某些常用命令的用法【转】

    转自:http://blog.csdn.net/luo3532869/article/details/7584290 ls 命令用于常看目录,用法:ls [选项][目录或文件]例:使用ls命令显示/h ...

  10. hdu 3006(状态压缩)

    The Number of set Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others ...