一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

设备端、服务端、网络系统和网络连接方法与流程

2021-11-09 20:06:00 来源:中国专利 TAG:


1.本公开涉及网络连接技术,特别涉及设备端和服务端之间的网络连接。


背景技术:

2.随着通信技术的飞速发展,人们对通讯安全性的要求也越来越高,目前,网络上普遍采用的安全通讯协议是https网络通讯协议。https协议提供了身份验证与加密通讯方法。
3.其中,https证书验证失败,则会导致网络连接失败。为了网络通讯的安全性,服务端会更新https证书。
4.https证书往往会设定有证书有效时间范围。超出证书有效时间范围则不能通过证书验证。
5.然而,由于成本问题,智能设备,例如,无屏智能音箱设备,普遍没有内置rtc(real_time clock,实时时钟)。这样,设备掉电上电之后,系统默认时间将会是设备固件编译时间。这个设备固件编译时间相对于当前实际时间,往往已经过去很久。
6.如果设备掉电后长时间不使用,会出现设备端相对于网络时间/当前实际时间滞后很多。此时,如果服务端更新了htts证书,由于设备端的系统当前时间不准确,不在证书有效时间范围之内,https证书校验将会失败,进而导致联网失败。
7.为了解决这一问题,需要使设备端的系统当前时间与网络时间同步,即智能设备通过ntp(network time protocol,网络时间协议)来校准系统当前时间,等待对时成功之后才能成功连接网关。
8.但是ntp对时会耗费1秒到10秒的时间(异常情况下可能ntp完全不能成功)。而且,断电重启之后,下一次依然需要进行ntp对时之后才能连接,也会增加延迟操作。因此,需要一种方法减少设备端对ntp对时的依赖。
9.现有技术中,存在以下几种思路来解决上述问题。
10.例如,联网采用http协议,不使用https协议,这样做虽然没有证书时效性问题、减少了对ntp的依赖,但是由于http协议不够安全,会出现劫持等问题,设备与服务端的通信安全得不到保证。
11.另一个思路是,在联网时,完全不校验时间,这样,会存在https劫持的风险。
12.另外一种方法是使服务端证书时间延长,或者不更新,这样,服务端会存在安全风险。另外,一些第三方的设备端无法干预服务端证书更新,没有可操作性。
13.因此,仍然需要一种设备与服务端之间能够减少对ntp的依赖、且具有较高安全性的快速连接方案。


技术实现要素:

14.本公开要解决的一个技术问题是如何提供一种设备与服务端之间能够减少对ntp的依赖、且具有较高安全性的快速连接方法。
15.根据本公开的第一个方面,提供了一种网络系统,包括设备端和服务端,其中,响应于设备端的连接请求,服务端向设备端发送证书,所述证书包括证书有效时间范围;在设备端当前系统时间不在所述证书有效时间范围之内的情况下,设备端向服务端发送当前时间请求;服务端基于所述当前时间请求携带的信息生成签名,并向设备端发送服务端当前系统时间和所述签名;设备端基于所述信息验证所述签名,并判断所述服务端当前系统时间是否在所述证书有效时间范围之内;并且在签名验证失败,或者所述服务端当前系统时间不在所述证书有效时间范围之内的情况下,设备端断开与服务端的连接。
16.可选地,设备端在接收到服务端发送的证书之后,建立与服务端之间的https连接,并在建立https连接之后向服务端发送所述当前时间请求;并且/或者设备端在签名验证成功,并且所述服务端当前系统时间在所述证书有效时间范围之内的情况下,设备端维持与服务端之间的https连接。
17.可选地,信息包括随机数和/或设备端的mac地址。
18.可选地,设备端不具有用于维护系统时间的实时时钟,设备端初次上电或掉电重上电后,通过执行ntp时间同步来校准系统时间。在因尚未执行ntp时间同步而导致设备端当前系统时间不在证书有效时间范围之内的情况下,设备端向服务端发送当前时间请求。
19.可选地,设备端包括用于维护系统时间的实时时钟和用于给实时时钟供电的电池。在因电池电量不足或实时时钟失效而导致设备端当前系统时间不在证书有效时间范围之内的情况下,设备端向服务端发送当前时间请求。
20.根据本公开的第二个方面,提供了一种设备端与服务端之间建立网络连接的方法,包括:向服务端发送连接请求;接收服务端返回的证书,所述证书包括证书有效时间范围;在设备端当前系统时间不在所述证书有效时间范围之内的情况下,向服务端发送当前时间请求;接收服务端返回的服务端当前系统时间和签名,所述签名是基于所述当前时间请求携带的信息生成的;基于所述信息验证所述签名,并判断所述服务端当前系统时间是否在所述证书有效时间范围之内;并且在签名验证失败,或者所述服务端当前系统时间不在所述证书有效时间范围之内的情况下,断开与服务端的连接。
21.可选地,该方法还包括:在接收到服务端发送的证书之后,向服务端发送所述当前时间请求之前,建立与服务端之间的https连接;以及/或者在签名验证成功,并且所述服务端当前系统时间在所述证书有效时间范围之内的情况下,维持与服务端之间的https连接。
22.可选地,信息包括随机数和/或设备端的mac地址。
23.可选地,该方法还包括:执行ntp时间同步;在ntp时间同步成功之后,判断设备端当前系统时间是否在所述证书有效时间范围之内;以及在所述设备端当前系统时间不在所述证书有效时间范围之内的情况下,断开与服务端的连接。
24.可选地,该方法还包括:在ntp时间同步成功之后,记录当前时间;以及在设备端重启时,使用所记录的时间作为系统起始时间。
25.可选地,设备端不具有用于维护系统时间的实时时钟,设备端初次上电或掉电重上电后,通过执行ntp时间同步来校准系统时间。在因尚未执行ntp时间同步而导致设备端当前系统时间不在证书有效时间范围之内的情况下,设备端向服务端发送当前时间请求。
26.可选地,设备端包括用于维护系统时间的实时时钟和用于给实时时钟供电的电池。在因电池电量不足或实时时钟失效而导致设备端当前系统时间不在证书有效时间范围
之内的情况下,设备端向服务端发送当前时间请求。
27.根据本公开的第三个方面,提供了一种设备端与服务端之间建立网络连接的方法,包括:接收设备端发送的连接请求;向设备端返回证书,所述证书包括证书有效时间范围;接收设备端发送的当前时间请求;基于所述当前时间请求携带的信息生成签名;以及向设备端发送服务端当前系统时间和所述签名。
28.根据本公开的第四个方面,提供了一种设备端,包括:第一发送装置,用于向服务端发送连接请求;第一接收装置,用于接收服务端返回的证书,所述证书包括证书有效时间范围;第二发送装置,用于在设备端当前系统时间不在所述证书有效时间范围之内的情况下,向服务端发送当前时间请求;第二接收装置,用于接收服务端返回的服务端当前系统时间和签名,所述签名是基于所述当前时间请求携带的信息生成的;验证装置,用于基于所述信息验证所述签名,并判断所述服务端当前系统时间是否在所述证书有效时间范围之内;以及连接控制装置,在签名验证失败,或者所述服务端当前系统时间不在所述证书有效时间范围之内的情况下,断开与服务端的连接。
29.根据本公开的第五个方面,提供了一种服务端,包括:第三接收装置,用于接收设备端发送的连接请求;第三发送装置,用于向设备端返回证书,所述证书包括证书有效时间范围;第四接收装置,用于接收设备端发送的当前时间请求;签名装置,用于基于所述当前时间请求携带的信息生成签名;以及第四发送装置,用于向设备端发送服务端当前系统时间和所述签名。
30.根据本公开的第六个方面,提供了一种计算设备,包括:处理器;以及存储器,其上存储有可执行代码,当可执行代码被处理器执行时,使处理器执行如上述第二、三方面所述的方法。
31.根据本公开的第七个方面,提供了一种非暂时性机器可读存储介质,其上存储有可执行代码,当可执行代码被电子设备的处理器执行时,使处理器执行如上述第二、三方面所述的方法。
32.由此,能够提供一种设备与服务端之间能够减少对ntp的依赖、且具有较高安全性的快速连接方案。
附图说明
33.通过结合附图对本公开示例性实施方式进行更详细的描述,本公开的上述以及其它目的、特征和优势将变得更加明显,其中,在本公开示例性实施方式中,相同的参考标号通常代表相同部件。
34.图1示出了根据本公开一实施例的网络系统的示意图。
35.图2示出了根据本公开一实施例的设备端与服务端之间建立网络连接的方法的示意性流程图。
36.图3示出了根据本公开一实施例的设备端与服务端之间建立网络连接的方法的示意性流程图。
37.图4示出了根据本公开一实施例的设备端的结构示意图。
38.图5示出了根据本公开一实施例的服务端的结构示意图。
39.图6示出了根据本发明一实施例的计算设备的结构示意图。
具体实施方式
40.下面将参照附图更详细地描述本公开的优选实施方式。虽然附图中显示了本公开的优选实施方式,然而应该理解,可以以各种形式实现本公开而不应被这里阐述的实施方式所限制。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。
41.本公开了提出了一种网络系统,该网络系统包括设备端和服务端。
42.图1示出了根据本公开一实施例的网络系统的示意图。
43.如图1所示,该网络系统包括设备端100和服务端200。
44.设备端100可以是不具有用于维护系统时间的实时时钟的设备。设备端100初次上电或掉电重上电后,通过执行ntp时间同步来校准系统时间。这样,在执行ntp时间同步之前,设备端100的当前系统时间很可能有误。
45.在执行ntp时间同步之前,通过根据本公开的网络连接方法,仍然可以建立设备端100和服务端200之间的网络连接。
46.或者,设备端100也可以包括用于维护系统时间的实时时钟和用于给实时时钟供电的电池。
47.例如,可以在电池电量充足的情况下,周期性地或响应于用户手动发出或设备通过其它方式收到的校时指令,通过执行ntp时间同步来对所述实时时钟进行校准。
48.在电池电量不足或实时时钟失效的情况下,实时时钟所提供的系统时间也将不再准确。这种情况下,也可以通过执行ntp时间同步来校准系统时间。
49.然而,在执行ntp时间同步之前,或者设备端100设置为不执行ntp时间同步的情况下,也可以通过根据本公开的网络连接方法,建立设备端100和服务端200之间的网络连接。
50.设备端100在需要与服务端200建立网络连接时,向服务端200发送连接请求。
51.服务端返回证书,证书附带有效时间范围,例如起始时间tb和结束时间te。
52.如果设备端100的本地系统实时时间不在证书有效时间范围之内,可以先忽略证书的验证,建立设备端100和服务端200之间的网络连接。然后,设备端100可以向服务端200发送对服务端系统时间的请求,并附上随机数、mac地址等信息。
53.服务端200基于设备端100发来的信息生成签名,并向设备端100发送服务端系统时间tn和签名。
54.签名认证通过后,如果tn在证书有效时间范围之内,则可以在设备端100和服务端200之间维持网络连接并进行正常通行。
55.下面参考图2至5进一步详细描述根据本公开一实施例的设备端与服务端之间建立网络连接的方案。
56.图2示出了根据本公开一实施例的设备端与服务端之间建立网络连接的方法的示意性流程图。
57.设备端100和服务端200的交互如下。图4示出了可用于实施该方法的设备端的结构示意图。
58.图5示出了可用于实施该方法的的服务端的结构示意图。
59.如图2所示,在步骤s110,设备端100,例如通过第一发送装置110,向服务端200发送连接请求。
60.在步骤s210,服务端200,例如通过第三接收装置210,接收设备端100发送的连接请求。
61.响应于设备端100的连接请求,在步骤s220,服务端200,例如通过第三发送装置220,向设备端100发送证书。证书包括证书有效时间范围。
62.在此,证书有效时间范围可以由证书起始时间tb和结束时间te确定。
63.在一些情况下,证书有效时间范围也可以仅由证书起始时间tb确定,即只限定证书起始时间。
64.或者,在一些情况下,证书有效时间范围也可以仅由证书结束时间te确定,即只限定证书结束时间。
65.在步骤s120,设备端100,例如通过第一接收装置120,接收服务端200返回的证书。如上文所述,该证书包括证书有效时间范围。
66.在一个实施例中,可以在设备端100接收到服务端200发送的证书之后,进入步骤s130,设备端100建立与服务端200之间的https连接。
67.在一个实施例中,假设设备端100当前系统时间为ts,在步骤s140,判断tb<ts<te是否成立,即判断设备端100当前系统时间ts是否在证书有效时间范围之内。
68.如果上述条件成立,则进入步骤s180,维持https连接,进行正常通信。
69.若上述条件不成立,则进入步骤s150,设备端100,例如通过第二发送装置130,向服务端200发送当前时间请求。即在设备端100当前系统时间不在证书有效时间范围之内的情况下,有可能是设备端100当前系统时间不准确,设备端100,例如通过第二发送装置130,向服务端200发送当前时间请求。
70.在设备端100不具有用于维护系统时间的实时时钟的情况下,如果收到服务端200发送的证书时,设备端100刚初次上电或掉电后刚重上电,尚未通过执行ntp时间同步来校准系统时间,则有可能因此而导致设备端当前系统时间不在证书有效时间范围之内。这种情况下,设备端100可以向服务端200发送上述当前时间请求,以便根据本公开的网络连接方法建立设备端100和服务端200之间的网络连接。
71.对于包括实时时钟的设备端100,在电池电量不足或实时时钟失效的情况下,实时时钟所提供的系统时间也将不再准确。如果此时收到服务端200发送的证书,则也有可能因此而导致设备端100的当前系统时间不在证书有效时间范围之内。这种情况下,设备端100也可以向服务端200发送上述当前时间请求,以便根据本公开的网络连接方法建立设备端100和服务端200之间的网络连接。
72.可以在当前时间请求中附带一些信息,以供服务端200生成签名,而设备端100则可以基于该信息对签名进行验证。
73.这里,当前时间请求携带的信息例如可以包括随机数和/或设备端的mac地址等。
74.进而,在步骤s230,服务端200,例如通过第四接收装置230,接收设备端100发送的当前时间请求。
75.在步骤s240,服务端200,例如通过签名装置240,基于当前时间请求携带的信息,例如,随机数和/或设备端的mac地址,生成签名。
76.接着,在步骤s250,服务端200,例如通过第四发送装置250,向设备端100发送服务端当前系统时间tn和步骤s240中生成的签名。
77.相应地,在步骤s160,设备端100,例如通过第二接收装置140,接收服务端返回的服务端当前系统时间tn和签名。
78.随后,在步骤s170,设备端100,例如通过验证装置150,基于当前时间请求携带的信息,验证接收到的签名。
79.若签名验证失败,则进入步骤s190,设备端100,例如通过连接控制装置160,断开与服务端的连接。
80.若签名验证成功,则进入步骤s175,判断服务端200当前系统时间tn是否在证书有效时间范围之内,例如判断tb<tn<te是否成立。
81.若服务端200当前系统时间tn在证书有效时间范围之内,例如tb<tn<te成立,则可以在步骤s180维持https连接,进行正常通信。
82.换言之,设备端100在签名验证成功,并且服务端当前系统时间tn在证书有效时间范围之内的情况下,判定服务端200是正常且合法的,设备端100维持与服务端200之间的https连接。
83.若服务端200当前系统时间tn也不在证书有效时间范围之内,服务端200可能被恶意劫持。这样,在tn在证书有效时间范围之内的情况下,例如在tb<tn<te不成立时,进入步骤s190,设备端100,例如通过连接控制装置160,断开与服务端200的连接。
84.这样,在本公开中,设备端100收到服务端200返回的证书,假设证书起始时间为tb,结束时间为te,而设备端100的系统当前时间为ts。若此时没有网络对时成功,ts很可能会小于tb,即不在证书有效时间范围之内。现有技术中,https通讯在这一步会失败。而本公开中,会暂时忽略证书时间的有效性,继续进行https连接。
85.设备端100在忽略服务端证书时间之后,会在建立https连接成功后,主动请求系统当前时间,同时携带随机数跟mac地址等信息。相应地,服务端200可以回复服务端系统当前时间tn,并根据随机数和/或mac地址等信息,提供一个签名。
86.设备端100在收到时间tn和签名之后,对签名进行验证,并根据当前时间tn验证之前的证书时间tb、te是否有效,同时验证服务端是否是合法的。如果tb<tn<te,则说明服务端是正常且合法的,可以继续连接并进行正常通信。否则,服务端可能被恶意劫持,设备端会主动断开连接。
87.本公开的技术方案中,在https连接阶段忽略证书时间的有效性,以减少ntp依赖。而在连接成功之后,通过服务端200带签名的对时,在对时成功之后,检验证书时间,避免存在https劫持问题。
88.图3示出了根据本公开一个实施例的设备端与服务端之间建立网络连接的方法的示意性流程图。
89.图3所示方法可以在上文参考图2描述的基础上进一步执行。为了简明清楚,这里没有绘出图2中的全部步骤。
90.除上文所描述外,在一个实施例中,如图3所示,还可以在步骤s310,设备端100执行ntp时间同步。例如,可以对设备端100的当前系统时间与网络时间/实际当前时间通过ntp进行时间同步。步骤s310可以在步骤s110之前进行,也可以在步骤s120之后进行。
91.如果先前曾经通过图2所示的方法,在设备端100的系统当前时间ts不在证书有效时间范围内的情况下,利用服务端200的系统当前时间tn对证书进行了验证,那么在ntp时
间同步成功之后,设备端100自身已经具有了准确的系统当前时间ts。于是,可以进入步骤s330,再次判断设备端100当前系统时间是否在证书有效时间范围之内,例如判断tb<ts<te是否成立。
92.若设备端当前系统时间ts在证书有效时间范围之内,则可以在步骤s340维持https连接正常通信。
93.而在设备端100当前系统时间ts不在证书有效时间范围之内的情况下,可以进入步骤s350,设备端100断开与服务端200的连接。
94.这样,可以进一步提高网络连接的安全性。
95.在一个实施例中,设备端与服务端之间建立网络连接的方法还包括在步骤s310之后,即ntp时间同步成功之后,进入步骤s320,记录当前时间tt。
96.这样,在设备端100重启时,可以使用所记录的时间tt作为系统起始时间t0。
97.每次ntp时间同步成功之后,都可以更新一个系统文件,写入当前时间tt。相应地,后续设备端100若出现拔电重启等情况,可以默认使用tt作为系统起始时间t0。这样,使用上次ntp时间同步之后的当前时间tt来更新t0而不是使用编译时间作为t0,可以减少设备端100与服务端200的时间差,进而减少在步骤s130中https证书时间验证失败的场景。
98.此外,整个方案可以基本上统一由设备端100实现。服务端200在此方案中仅增加了下发系统当前时间tn以及对时间签名的功能,实现简单,并且能有效减少对ntp的依赖。
99.由此,本公开所提供的设备端与服务端之间建立网络连接的方法能够减少对ntp的依赖、且具有较高安全性能地进行快速连接。
100.图6示出了根据本发明一实施例可用于实现上述设备端与服务端之间建立网络连接的方法的计算设备的结构示意图。
101.参见图6,计算设备600包括存储器610和处理器620。
102.处理器620可以是一个多核的处理器,也可以包含多个处理器。在一些实施例中,处理器620可以包含一个通用的主处理器以及一个或多个特殊的协处理器,例如图形处理器(gpu)、数字信号处理器(dsp)等等。在一些实施例中,处理器620可以使用定制的电路实现,例如特定用途集成电路(asic,application specific integrated circuit)或者现场可编程逻辑门阵列(fpga,field programmable gate arrays)。
103.存储器610可以包括各种类型的存储单元,例如系统内存、只读存储器(rom),和永久存储装置。其中,rom可以存储处理器620或者计算机的其他模块需要的静态数据或者指令。永久存储装置可以是可读写的存储装置。永久存储装置可以是即使计算机断电后也不会失去存储的指令和数据的非易失性存储设备。在一些实施方式中,永久性存储装置采用大容量存储装置(例如磁或光盘、闪存)作为永久存储装置。另外一些实施方式中,永久性存储装置可以是可移除的存储设备(例如软盘、光驱)。系统内存可以是可读写存储设备或者易失性可读写存储设备,例如动态随机访问内存。系统内存可以存储一些或者所有处理器在运行时需要的指令和数据。此外,存储器610可以包括任意计算机可读存储媒介的组合,包括各种类型的半导体存储芯片(dram,sram,sdram,闪存,可编程只读存储器),磁盘和/或光盘也可以采用。在一些实施方式中,存储器610可以包括可读和/或写的可移除的存储设备,例如激光唱片(cd)、只读数字多功能光盘(例如dvd-rom,双层dvd-rom)、只读蓝光光盘、超密度光盘、闪存卡(例如sd卡、min sd卡、micro-sd卡等等)、磁性软盘等等。计算机可读存
储媒介不包含载波和通过无线或有线传输的瞬间电子信号。
104.存储器610上存储有可执行代码,当可执行代码被处理器620处理时,可以使处理器620执行上文述及的设备端与服务端之间建立网络连接的方法。
105.上文中已经参考附图详细描述了根据本发明的设备端、服务端、网络系统和设备端与服务端之间建立网络连接的方法。
106.此外,根据本发明的方法还可以实现为一种计算机程序或计算机程序产品,该计算机程序或计算机程序产品包括用于执行本发明的上述方法中限定的上述各步骤的计算机程序代码指令。
107.或者,本发明还可以实施为一种非暂时性机器可读存储介质(或计算机可读存储介质、或机器可读存储介质),其上存储有可执行代码(或计算机程序、或计算机指令代码),当所述可执行代码(或计算机程序、或计算机指令代码)被电子设备(或计算设备、服务器等)的处理器执行时,使所述处理器执行根据本发明的上述方法的各个步骤。
108.本领域技术人员还将明白的是,结合这里的公开所描述的各种示例性逻辑块、模块、电路和算法步骤可以被实现为电子硬件、计算机软件或两者的组合。
109.附图中的流程图和框图显示了根据本发明的多个实施例的系统和方法的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标记的功能也可以以不同于附图中所标记的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
110.以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献