YS端对端之间SSL通信安全问题
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通信安全问题的更多相关文章
- 应用java多线程实现server端与多client之间的通信
应用多线程来实现server与多线程之间的通信的基本步骤 1.server端创建ServerSocket,循环调用accept()等待client链接 2.client创建一个Socket并请求和se ...
- Python_架构、同一台电脑上两个py文件通信、两台电脑如何通信、几十台电脑如何通信、更多电脑之间的通信、库、端口号
1.架构 C/S架构(鼻祖) C:client 客户端 S:server 服务器 早期使用的一种架构,目前的各种app使用的就是这种架构,它的表现形式就是拥有专门的app. B/S架构(隶属于C/ ...
- [C语言]一个很实用的服务端和客户端进行TCP通信的实例
本文给出一个很实用的服务端和客户端进行TCP通信的小例子.具体实现上非常简单,只是平时编写类似程序,具体步骤经常忘记,还要总是查,暂且将其记下来,方便以后参考. (1)客户端程序,编写一个文件clie ...
- WCF开发的流程-服务端和客户端之间的通讯(内含demo讲解)
讲解技术之前,恳请博友让我说几句废话.今天是我第一在博客园发布属于自己原创的博文(如有雷同,那是绝对不可能的事,嘿嘿).之前一直是拜读各位博友的大作,受益匪浅的我在这对博友们说声谢谢,谢谢你们的共享! ...
- SSL、TLS协议格式、HTTPS通信过程、RDP SSL通信过程
相关学习资料 http://www.360doc.com/content/10/0602/08/1466362_30787868.shtml http://www.gxu.edu.cn/college ...
- SSL 通信原理及Tomcat SSL 配置
SSL 通信原理及Tomcat SSL 双向配置 目录1 参考资料 .................................................................. ...
- SSL 通信原理及Tomcat SSL 双向配置
SSL 通信原理及Tomcat SSL 双向配置 目录1 参考资料 .................................................................. ...
- SSL、TLS协议格式、HTTPS通信过程、RDP SSL通信过程(缺heartbeat)
SSL.TLS协议格式.HTTPS通信过程.RDP SSL通信过程 相关学习资料 http://www.360doc.com/content/10/0602/08/1466362_30787868 ...
- Tomcat6和Tomcat7配置SSL通信的比较
<Tomcat6和Tomcat7配置SSL通信的比较> 作者:chszs,转载需注明.博客主页: http://blog.csdn.net/chszs 在项目开发过程中,尝尝会遇到Tomc ...
随机推荐
- jsonp解析 html
https://jsoup.org/cookbook/ 官网的教程, 很详细! <dependency> <groupId>org.jsoup</groupId> ...
- Nginx配置配置文件详解
文章目录 配置文件 nginx.conf配置文件详解 用于调试.定位问题的配置参数 正常运行必备的配置参数 优化性能的配置参数 事件相关配置 Fastcgi相关配置参数 常需要调整的参数 nginx作 ...
- 区间(bzoj 4653)
Description 在数轴上有 n个闭区间 [l1,r1],[l2,r2],...,[ln,rn].现在要从中选出 m 个区间,使得这 m个区间共同包含至少一个位置.换句话说,就是使得存在一个 x ...
- 【洛谷 P1437】 [HNOI2004]敲砖块 (DP)
题目链接 毒瘤DP题 因为\((i,j)\)能不能敲取决于\((i-1,j)\)和\((i-1,j+1)\),所以一行一行地转移显然是有后效性的. 于是考虑从列入手.我们把这个三角形"左对齐 ...
- bzoj 1878 SDOI2009树状数组 离线操作
本来想写2120的,结果想起来了这个 我们先对于询问左端点排序,用树状数组存区间字母个数,对于每种字母, 第一次出现的位置记录为1,剩下的记录为0,然后记录下,每种颜色 后面第一个和他相同颜色的位置 ...
- linux基础——关于chmod用户权限和文件的相关操作
第一部分:1) 新建用户natasha,uid为1007,gid为555,备注信息为“master” 操作:useradd natasha新建natasha:修改uid是,usermod -u 100 ...
- 一步步打造自己的linux命令行计算器
相信很多人,在工作中会需要使用到计算器.一般的做法是,打开并使用系统自带的计算器. 这种做法可能对我来说,有如下几个问题. 太慢.每次需要打开计算器,然后改成编程模式,手工选择进制,再使用输入表达式进 ...
- ubuntu16.04下fcitx无法在QT Creator输入中文解决办法
我的博客新地址:www.liuquanhao.com ------------------------------------------------------ Qt creator无法用fcitx ...
- poj 3254(状态压缩+动态规划)
http://poj.org/problem?id=3254 题意:有一个n*m的农场(01矩阵),其中1表示种了草可以放牛,0表示没种草不能放牛,并且如果某个地方放了牛,它的上下左右四个方向都不能放 ...
- [thinkphp] 是如何输出一个页面的
表面上看,TP输出一个页面很简单:$this->display(); 实际上是怎么回事呢?$this->display(); 这个display()方法是定义在ThinkPHP/Libra ...