一种基于安全的安防监控网络通讯方法转让专利

申请号 : CN201810565201.4

文献号 : CN108848084B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 黄李明张文欢李金彪杨亮亮申雷王裕良邹小蓉

申请人 : 珠海安联锐视科技股份有限公司

摘要 :

本发明提供了一种基于安全的安防监控网络通讯方法,具体包括:监控客户端和监控设备端的TCP连接、密钥登录、传输通道验证、信息加密传输、主动断开连接、关闭主消息链路,等步骤。本安防监控网络通讯方法采用监控客户端和监控设备端双向密钥验证的方式,并且密钥验证采用sessionKey关联计算,认证过程中不会有密钥明文传递的现象,可以防止攻击者伪造合法用户获取设备的访问权限,监控客户端和监控设备端之间传输的数据由发送端自动加密,并且由TCP进行数据传输,然后作为不可阅读和不可识别的加密信息穿过网络,当接收端接收到加密信息后自动重组解密成可读数据,从而保证数据传输的安全性和完整性。

权利要求 :

1.一种基于安全的安防监控网络通讯方法,其特征在于,具体包括以下步骤:

步骤1、监控客户端向监控设备端发送TCP连接请求,监控客户端和监控设备端之间以客户-服务器方式建立TCP连接,并在此TCP连接上连续发送多个数据包,在TCP连接保持期间,如果没有数据包发送,监控客户端和监控设备端双方均需要发链路检测包以维持此连接;

步骤2、监控客户端向监控设备端发送MsgLogin登录请求消息,监控客户端和监控设备均采用密钥验证,其具体过程如下:步骤21、监控客户端发送用户名给监控设备端;

步骤22、监控设备端从数据库取出用户名对应的密码,产生公钥和参数用于和监控客户端交换信息;

步骤23、监控设备端发送公钥和参数到监控客户端;

步骤24、监控客户端根据监控设备端发送的公钥和参数以及自身保存的密码运算出一个值sessionKey;

步骤25、监控设备端根据私钥和在步骤22中产生的参数和从数据库中取出的密码计算出另一个值sessionKey;

步骤26、监控客户端对sessionKey哈希处理后发送给监控设备端,监控设备端验证双方生成的密钥是否一致,监控客户端计算的值sessionKey和监控设备端计算的值sessionKey如果相等,则验证通过,并且将此值sessionKey用于认证后的对称加密,如果监控客户端计算的值sessionKey和监控设备端计算的值sessionKey不相等,则登录失败;

步骤3、监控设备端向监控客户端发送回应消息,如果监控设备端验证用户名密码成功则发送MsgLogin回应消息,否则发送登录失败消息;

步骤4、登录成功后,监控客户端向监控设备端每隔5秒发送心跳消息,监控设备端接收到心跳消息后发送心跳回应消息,确保监控客户端和监控设备端之间连通顺畅;

步骤5、监控客户端向监控设备端发送数据请求消息,监控设备端接收到请求信息后对数据进行对称加密并发送请求回应消息,监控客户端接收加密信息并通过密钥解密;

步骤6、数据请求回应消息传输完毕后,监控客户端主动断开连接,监控客户端关闭主消息链路,通信完成。

2.根据权利要求1所述的基于安全的安防监控网络通讯方法,其特征在于,所述步骤1中,监控客户端与监控设备经过三次握手建立TCP连接,建立连接之后当信道上没有数据传输时,监控客户端与监控设备双方应每隔时间C发送链路检测包以维持此连接,当链路检测包发出超过时间T后如果未收到响应,则立即再发送链路检测包,再连续发送N-1次后仍未得到响应则断开此连接,其中参数C、T、N可自由配置,默认配置为C=5秒,T=5秒,N=1,消息发送后等待T秒后如果未收到响应,则立即重发,再连续发送N-1次后仍未得到响应则停止发送。

3.根据权利要求2所述的基于安全的安防监控网络通讯方法,其特征在于,监控设备端登录认证成功后会建立一个长连接的主消息链路,用来发送即时的请求命令,该主消息链路直到用户退出登录时才断开连接。

4.根据权利要求1所述的基于安全的安防监控网络通讯方法,其特征在于,所述步骤5中,数据采用AES对称加密算法,密钥为登录认证下产生的sessionKey,具体步骤如下:步骤51、监控客户端和监控设备端通过登录验证获取对称密钥sessinoKey;

步骤52、监控设备端先将需要发送的数据消息明文和密钥用于AES加密,产生密文,通过网络传输到监控客户端;

步骤53、监控客户端将接收到的消息通过sessionKey进行AES解密,将密文解密成消息明文。

说明书 :

一种基于安全的安防监控网络通讯方法

技术领域

[0001] 本发明涉及安防监控通讯技术领域,具体涉及一种基于安全的安防监控网络通讯方法。

背景技术

[0002] 安防监控系统是应用光纤、同轴电缆或微波在其闭合的环路内传输视频信号,并从摄像到图像显示和记录构成独立完整的系统。它能实时、形象、真实地反映被监控对象,不但极大地延长了人眼的观察距离,而且扩大了人眼的机能,它可以在恶劣的环境下代替人工进行长时间监视,让人能够看到被监视现场的实际发生的一切情况,并通过录像机记录下来。同时报警系统设备对非法入侵进行报警,产生的报警信号输入报警主机,报警主机触发监控系统录像并记录。
[0003] 传统的安防通讯协议由于基本使用在内网(局域网)中,网络环境比较干净,设备与客户端之间通讯基本采用明文方式,客户端与设备定义好协议之后直接发送到网络中,此种通讯方法快捷方便,但是这种通讯方式是不安全的,也就意味着介于设备端与客户端中间的任意节点都可以直接知道传输内容是什么,数据很容易被截获,带来安全隐患。

发明内容

[0004] 针对现有技术的不足,本发明提供了一种基于安全的安防监控网络通讯方法,通过安全的用户数字认证以及可靠的信息加密,保证数据在传输之前先进行安全加密然后再进行网络传输,保证数据传输的安全性和完整性,防止数据被外部破解和控制,确保信息安全。
[0005] 为实现上述技术方案,本发明提供了一种基于安全的安防监控网络通讯方法,具体包括如下步骤:
[0006] 步骤1、监控客户端向监控设备端发送TCP连接请求,监控客户端和监控设备端之间以客户-服务器方式建立TCP连接,并在此TCP连接上连续发送多个数据包,在TCP连接保持期间,如果没有数据包发送,监控客户端和监控设备端双方均需要发链路检测包以维持此连接;
[0007] 步骤2、监控客户端向监控设备端发送MsgLogin登录请求消息,监控客户端和监控设备端均采用密钥验证,其具体过程如下:
[0008] 步骤21、监控客户端发送用户名给监控设备端;
[0009] 步骤22、监控设备端从数据库取出用户名对应的密码,产生公钥和参数用于和监控客户端交换信息;
[0010] 步骤23、监控设备端发送公钥和参数到监控客户端;
[0011] 步骤24、监控客户端根据监控设备端发送的公钥和参数以及自身保存的密码运算出一个值sessionKey;
[0012] 步骤25、监控设备端根据私钥和在步骤22中产生的参数和从数据库中取出的密码计算出另一个值sessionKey;
[0013] 步骤26、监控客户端对sessionKey哈希处理后发送给监控设备端,监控设备端验证双方生成的密钥是否一致,监控客户端计算的值sessionKey和监控设备端计算的值sessionKey如果相等,则验证通过,并且将此值sessionKey用于认证后的对称加密,如果监控客户端计算的值sessionKey和监控设备端计算的值sessionKey不相等,则登录失败;
[0014] 步骤3、监控设备端向监控客户端发送回应消息,如果监控设备端验证用户名密码成功则发送MsgLogin回应消息,否则发送登录失败消息;
[0015] 步骤4、登录成功后,监控客户端向监控设备端每隔5秒发送心跳消息,监控设备端接收到心跳消息后发送心跳回应消息,确保监控客户端和监控设备端之间连通顺畅;
[0016] 步骤5、监控客户端向监控设备端发送数据请求消息,监控设备端接收到请求信息后对数据进行对称加密并发送请求回应消息,监控客户端接收加密信息并通过密钥解密;
[0017] 步骤6、数据请求回应消息传输完毕后,监控客户端主动断开连接,监控客户端关闭主消息链路,通信完成。
[0018] 优选的,所述步骤1中,监控客户端与监控设备经过三次握手建立TCP连接,建立连接之后当信道上没有数据传输时,监控客户端与监控设备双方应每隔时间C发送链路检测包以维持此连接,当链路检测包发出超过时间T后如果未收到响应,则立即再发送链路检测包,再连续发送N-1次后仍未得到响应则断开此连接,其中参数C、T、N可自由配置,默认配置为C=5秒,T=5秒,N=1,消息发送后等待T秒后如果未收到响应,则立即重发,再连续发送N-1次后仍未得到响应则停止发送。
[0019] 优选的,所述步骤1中,监控客户端与监控设备之间进行信令交互时,监控客户端和监控设备端之间的应答与请求可在同一个连接中完成,操作以监控客户端驱动方式发起连接请求,监控设备端完成一次操作请求之后随即关闭该连接,监控客户端与监控设备端之间的消息发送后等待T秒后未收到响应,监控客户端应立即重发TCP连接请求。
[0020] 优选的,监控设备端登录认证成功后会建立一个长连接的主消息链路,用来发送即时的请求命令,该主消息链路直到用户退出登录时才断开连接。
[0021] 优选的,所述步骤5中,数据采用AES对称加密算法,密钥为登录认证下产生的sessionKey,具体步骤如下:
[0022] 步骤51、监控客户端和监控设备端通过登录验证获取对称密钥sessinoKey;
[0023] 步骤52、监控设备端先将需要发送的数据消息明文和密钥用于AES加密,产生密文,通过网络传输到监控客户端;
[0024] 步骤53、监控客户端将接收到的消息通过sessionKey进行AES解密,将密文解密成消息明文。
[0025] 本发明提供的一种基于安全的安防监控网络通讯方法有益效果在于:本安防监控网络通讯方法采用监控客户端和监控设备端双向密钥验证的方式,并且密钥验证采用sessionKey关联计算,认证过程中不会有密钥明文传递的现象,可以防止攻击者伪造合法用户获取设备的访问权限,监控客户端和监控设备端之间传输的数据由发送端自动加密,并且由TCP进行数据传输,然后作为不可阅读和不可识别的加密信息穿过网络,当接收端接收到加密信息后自动重组解密成可读数据,从而保证数据传输的安全性和完整性,防止数据被外部破解和控制,确保信息安全。

附图说明

[0026] 图1为本发明中监控客户端和监控设备端整体交互过程示意图。
[0027] 图2为本发明中监控客户端和监控设备端密钥验证过程示意图。
[0028] 图3为本发明中数据加密和解密过程示意图。
[0029] 图4为本发明中监控客户端和监控设备端实现长连接通讯的流程示意图。
[0030] 图5为本发明中监控客户端和监控设备端实现短连接通讯的流程示意图。

具体实施方式

[0031] 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整的描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。本领域普通人员在没有做出创造性劳动前提下所获得的所有其它实施例,均属于本发明的保护范围。
[0032] 实施例:一种基于安全的安防监控网络通讯方法。
[0033] 参照图1所示,一种基于安全的安防监控网络通讯方法,具体包括如下步骤:
[0034] 步骤1、监控客户端(CU)向监控设备端(PU)发送TCP连接请求,监控客户端(CU)和监控设备端(PU)之间以客户-服务器方式建立TCP连接,当监控客户端与监控设备之间进行信令交互时,采用长连接方式,所谓长连接,指在一个TCP连接上可以连续发送多个数据包,在TCP连接保持期间,如果没有数据包发送,需要双方发链路检测包以维持此连接,监控客户端与监控设备端经过三次握手建立TCP连接之后,当信道上没有数据传输时,通信双方应每隔时间C发送链路检测包以维持此连接,当链路检测包发出超过时间T后如果未收到响应,则立即再发送链路检测包,再连续发送N-1次后仍未得到响应则断开此连接,参数C、T、N可自由配置,默认配置为C=5秒,T=5秒,N=1,消息发送后等待T秒后如果未收到响应,则立即重发,再连续发送N-1次后仍未得到响应则停止发送(如图4所示);监控设备登录认证后会建立一个长连接的主消息链路,用来发送即时的请求命令,该连接直到用户退出登录时才断开连接;采用长连接方式的优点在于:在TCP双方通讯之前,需要经过TCP的三次握手建立连接,连接建立之后方能进行数据交互,当数据交互以后需要进行TCP的四次挥手释放连接,长连接可以持续在链路上发送和接收数据,省去较多的TCP建立和释放的操作,节约时间,有数据消息产生直接发送即可,无需再建立TCP连接,监控客户端和服务端在已连接的基础之上自行建立心跳消息进行保活,同时客户设备端可以向监控客户端进行消息推送,监控设备端将监控客户端感兴趣的消息推送到监控客户端;
[0035] 监控客户端(CU)与监控设备端(PU)之间进行信令交互时部分采用短连接方式,即监控客户端(CU)和监控设备端(PU)之间的应答与请求在同一个连接中完成,操作以监控客户端驱动方式发起连接请求,监控设备端完成一次操作请求之后随即关闭该连接,监控客户端与监控设备端之间的消息发送后等待T秒后未收到响应,监控客户端应立即重发TCP连接请求(如图5所示);采用短连接的优点在于:由于监控客户端和服务器的每建立一个连接都会耗费一定服务器资源,如果监控客户端与服务器之间连接如果长时间不关闭,服务器可用资源则越来越少,最后将出现服务异常,同时短链接对于服务器来说也更简单,无需进行心跳消息保活,用完即释放,利于系统对资源及时回收;
[0036] 步骤2、监控客户端(CU)向监控设备端(PU)发送MsgLogin登录请求消息,监控客户端和监控设备端均采用密钥验证,其具体过程如下(如图2所示):
[0037] 步骤21、监控客户端发送用户名给监控设备端;
[0038] 步骤22、监控设备端从数据库(DB)取出用户名对应的密码,产生公钥和参数用于和监控客户端交换信息;
[0039] 步骤23、监控设备端发送公钥和参数到监控客户端;
[0040] 步骤24、监控客户端根据监控设备端发送的公钥和参数以及自身保存的密码运算出一个值sessionKey;
[0041] 步骤25、监控设备端根据私钥和在步骤22中产生的参数和从数据库(DB)中取出的密码计算出另一个值sessionKey;
[0042] 步骤26、监控客户端对sessionKey哈希处理后发送给监控设备端,监控设备端验证双方生成的密钥是否一致,监控客户端计算的值sessionKey和监控设备端计算的值sessionKey如果相等,则验证通过,并且将此值sessionKey用于认证后的对称加密,如果监控客户端计算的值sessionKey和监控设备端计算的值sessionKey不相等,则登录失败;
[0043] sessionKey值计算及密钥验证过程具体说明如下:
[0044] 1.验证名词解释
[0045]N 一个非常大的质素,所有的运算都是在moduloN上完成
g 一个N的模数
k 乘数因子,在SRP6中k=3
s 用户的盐值(salt)
I 用户名
p 明文密码
H() 单向hash
^ 模幂运算
u 随机计算值
a,b 临时秘密值
A,B 临时公开值
x 私钥(由p和s生成)
v 口令检验值
[0046] 2.公式计算
[0047] 服务端(host)用以下的方程式计算用户的信息并保存,用于验证客户端登陆[0048] x=H(s,p)(s,随机选取)
[0049] v=g^x(v就是口令验证值)
[0050] 3.认证和协商过程
[0051]
[0052]
[0053] 上述密钥验证过程是一个基于口令的身份认证和密钥交换协议验证的过程,优点在于,验证过程中不会有密钥明文传递的现象,用户只需要持有口令即可,服务端存储的并非用户的口令,而是与口令相关的信息,即便服务器被敌手俘获,敌手也无法伪造一个合法的客户端(无法拿到口令)从而保证了监控客户端和监控设备端双方的安全;
[0054] 步骤3、监控设备端向监控客户端发送回应消息,如果监控设备端验证用户名密码成功则发送MsgLogin回应消息,否则发送登录失败消息;
[0055] 步骤4、登录成功后,监控客户端向监控设备端每隔5秒发送心跳消息,监控设备端接收到心跳消息后发送心跳回应消息,确保监控客户端和监控设备端之间连通顺畅,如果监控设备端不能及时发送心跳回应消息,则自动提醒主消息链路可能存在系统故障;
[0056] 步骤5、监控客户端向监控设备端发送数据请求消息,监控设备端接收到请求信息后对数据进行对称加密,数据通过AES加密算法即密码学中的高级密码标准(Advanced Encryption Standard,AES),采用对称加密算法,密钥为登录认证下产生的sessionKey,并发送请求回应消息,监控客户端接收加密信息并通过密钥解密,其具体过程为如下(如图3所示):
[0057] 步骤51、监控客户端和监控设备端通过登录验证获取对称密钥sessinoKey;
[0058] 步骤52、监控设备端先将需要发送的数据消息明文和密钥用于AES加密,产生密文,通过网络传输到监控客户端;
[0059] 步骤53、监控客户端将接收到的消息通过sessionKey进行AES解密,将密文解密成消息明文;
[0060] 如此一来,可以实现监控客户端和监控设备端之间传输的数据由发送端自动加密,并且由TCP进行数据传输,然后作为不可阅读和不可识别的加密信息穿过网络,当接收端接收到加密信息后自动重组解密成可读数据(AES的解密码必须与前步骤中生成的sessionKey一致,可以防止外部破解),从而保证数据传输的安全性和完整性,防止数据被外部破解和控制,确保信息安全;
[0061] 步骤6、数据请求回应消息传输完毕后,监控客户端主动断开连接,监控客户端关闭主消息链路,通信完成。
[0062] 以上所述为本发明的较佳实施例而已,但本发明不应局限于该实施例和附图所公开的内容,所以凡是不脱离本发明所公开的精神下完成的等效或修改,都落入本发明保护的范围。