发明内容
本发明的目的在于,针对上述现有技术中的不足,提供一种业务信息下发方法、装置、服务器、客户端及存储介质,以便解决现有技术中采用基于access token进行安全验证时,无法避免任何用户登入系统后获取到访问令牌,导致系统安全性低的问题。
为实现上述目的,本申请实施例采用的技术方案如下:
第一方面,本申请实施例提供了一种工业互联网中的业务信息下发方法,所述方法包括:接收客户端发送的第一信号下发请求,所述第一信号下发请求包括:第一信号数据包,所述第一信号数据包为客户端根据待下发的业务信息、预设的访问令牌、所述客户端的第一系统时间以及第一密文信息所生成的数据包;
对所述第一信号数据包进行解析,得到解析信息;
根据所述解析信息对所述第一信号数据包进行至少一项验证;
若所述至少一项验证均通过,则根据所述解析信息中的所述业务信息及所述第一信号数据包生成第二信号数据包;
向业务服务器发送第二信号下发请求,所述第二信号下发请求包括:所述业务信息和所述第二信号数据包。
进一步地,所述根据所述解析信息对所述第一信号数据包进行至少一项验证,包括:确定所述解析信息是否包括:所述业务信息、所述访问令牌、所述第一系统时间以及第一密文信息;其中,所述第一密文信息为所述客户端根据对所述业务信息和所述第一系统时间进行加密处理得到第一信息摘要,并根据预设的公钥,采用非对称加密算法对所述第一信息摘要进行加密,所得到的密文信息;
若所述解析信息包括:所述业务信息、所述访问令牌、所述第一系统时间以及第一密文信息,则确定所述第一信号数据包的完整性验证通过;
若所述解析信息中缺少所述业务信息、所述访问令牌、所述第一系统时间以及第一密文信息中的至少一项信息,则确定所述第一信号数据包的完整性验证失败。
进一步地,所述根据所述解析信息对所述第一信号数据包进行至少一项验证包括:若所述第一信号数据包的完整性验证通过,则确定所述第一系统时间和网关服务器的第二系统时间的时间差;
确定所述时间差是否大于或等于预设时间阈值;
若所述时间差大于或等于所述预设时间阈值,则确定所述第一信号数据包的实时性验证失败;
若所述时间差小于所述预设时间阈值,则确定所述第一信号数据包的实时性验证通过。
进一步地,所述根据所述解析信息对所述第一信号数据包进行至少一项验证包括:若所述第一信号数据包的完整性验证通过,则根据所述解析信息中的所述业务信息和所述第一系统时间进行加密处理得到第二信息摘要;
确定预设的数据库中是否存储有所述第二信息摘要;
若所述数据库中未存储有所述第二信息摘要,则确定所述第一信号数据包的重复性验证通过;
若所述数据库中存储有所述第二信息摘要,则确定所述第一信号数据包的重复性验证失败。
进一步地,所述根据所述解析信息对所述第一信号数据包进行至少一项验证,还包括:
若所述第一信号数据包的重复性验证通过,则确定所述数据库中是否存储有所述访问令牌;
若所述数据库中存储有所述访问令牌,则确定所述第一信号数据包对应的访问令牌的有效性验证通过;
若所述数据库中未存储有所述访问令牌,则确定所述第一信号数据包对应的访问令牌的有效性验证失败。
进一步地,所述根据所述解析信息对所述第一信号数据包进行至少一项验证,包括:若所述第一信号数据包对应的访问令牌的有效性验证通过,则根据所述访问令牌,查询所述数据库中所述访问令牌对应的公钥和私钥;
采用所述私钥,对所述第一密文信息进行解密,得到第三信息摘要;
确定所述第二信息摘要和所述第三信息摘要是否一致;
若所述第二信息摘要和所述第三信息摘要一致,则确定所述第一信号数据包的可信度验证验证通过;
若所述第二信息摘要和所述第三信息摘要不一致,则确定所述第一信号数据包的可信度验证验证失败。
进一步地,所述接收客户端发送的第一信号下发请求之前,所述方法还包括:接收所述客户端发送的公钥获取请求,所述公钥获取请求包括:所述访问令牌;
若所述访问令牌验证通过,采用非对称加密算法,生成所述公钥以及所述公钥对应的私钥;
向所述客户端发送公钥获取响应,所述公钥获取请求包括:所述公钥和预设的过期时长。
进一步地,若所述访问令牌验证通过,则所述方法还包括:将所述访问令牌、所述公钥和所述私钥存储至预设的数据库中。
进一步地,所述方法还包括:若所述访问令牌在所述数据库中的存储时间达到预设的过期时长,则将所述访问令牌,从所述数据库删除。
进一步地,所述方法还包括:若所述访问令牌验证失败,向所述客户端发送公钥获取失败信息,所述公钥获取失败信息用于指示所述访问令牌验证失败。
第二方面,本申请实施例还提供了一种工业互联网中的业务信息下发方法,所述方法包括:
根据待下发的业务信息、预设的访问令牌、客户端的第一系统时间以及第一密文信息,生成待下发的第一信号数据包;
向网关服务器发送第一信号下发请求,所述第一信号下发请求包括所述第一信号数据包;其中,所述第一信号下发请求用于使得所述网关服务器对所述第一信号数据包进行解析,得到解析信息,并根据所述解析信息对所述第一信号数据包进行至少一项验证,在所述至少一项验证均通过后,根据所述解析信息中的所述业务信息以及所述第一信号数据包生成第二信号数据包,并向业务服务器下发包括所述第二信号数据包的第二信号下发请求。
进一步地,所述根据待下发的业务信息、预设的访问令牌、所述客户端的第一系统时间以及第一密文信息,生成待下发的第一信号数据包,包括:对所述业务信息和所述第一系统时间进行加密处理,得到第一信息摘要;
根据预设的公钥,采用非对称加密算法,对所述第一信息摘要进行加密,得到第一密文信息;
根据所述业务信息、所述访问令牌、所述第一系统时间以及所述第一密文信息,生成所述第一信号数据包。
进一步地,所述对所述业务信息和所述第一系统时间进行加密处理,得到第一信息摘要,包括:对所述业务信息和所述第一系统时间进行字符串拼接,得到拼接字符串;
采用预设的摘要加密算法,对所述拼接字符串进行加密,得到所述第一信息摘要。
进一步地,所述对所述业务信息和所述第一系统时间进行加密处理,得到第一信息摘要之前,所述方法还包括:向所述网关服务器发送公钥获取请求,所述公钥获取请求包括:所述访问令牌,所述公钥获取请求用于使得所述网关服务器对所述访问令牌验证通过后,采用非对称加密算法,生成所述公钥以及所述公钥对应的私钥;
接收所述网关服务器发送的公钥获取响应,所述公钥获取请求包括:所述公钥和预设的过期时长。
进一步地,所述方法还包括:接收所述网关服务器发送的公钥获取失败信息,所述公钥获取失败信息用于指示所述访问令牌验证失败。
第三方面,本申请实施例还提供了一种工业互联网中的业务信息下发装置,所述装置包括:接收模块、解析模块、验证模块、生成模块、发送模块;
所述接收模块,用于接收客户端发送的第一信号下发请求,所述第一信号下发请求包括:第一信号数据包,所述第一信号数据包为客户端根据待下发的业务信息、预设的访问令牌、所述客户端的第一系统时间以及第一密文信息所生成的数据包;
所述解析模块,用于对所述第一信号数据包进行解析,得到解析信息;
所述验证模块,用于根据所述解析信息对所述第一信号数据包进行至少一项验证;
所述生成模块,用于若所述至少一项验证均通过,则根据所述解析信息中的所述业务信息及所述第一信号数据包生成第二信号数据包;
所述发送模块,用于向业务服务器发送第二信号下发请求,所述第二信号下发请求包括:所述业务信息和所述第一信号数据包。
进一步地,所述验证模块,用于确定所述解析信息是否包括:所述业务信息、所述访问令牌、所述第一系统时间以及第一密文信息;其中,所述第一密文信息为所述客户端根据对所述业务信息和所述第一系统时间进行加密处理得到第一信息摘要,并根据预设的公钥,采用非对称加密算法对所述第一信息摘要进行加密,所得到的密文信息;
若所述解析信息包括:所述业务信息、所述访问令牌、所述第一系统时间以及第一密文信息,则确定所述第一信号数据包的完整性验证通过;
若所述解析信息中缺少所述业务信息、所述访问令牌、所述第一系统时间以及第一密文信息中的至少一项信息,则确定所述第一信号数据包的完整性验证失败。
进一步地,所述验证模块,用于若所述第一信号数据包的完整性验证通过,则确定所述第一系统时间和网关服务器的第二系统时间的时间差;
确定所述时间差是否大于或等于预设时间阈值;
若所述时间差大于或等于所述预设时间阈值,则确定所述第一信号数据包的实时性验证失败;
若所述时间差小于所述预设时间阈值,则确定所述第一信号数据包的实时性验证通过。
进一步地,所述验证模块,用于若所述第一信号数据包的完整性验证通过,则根据所述解析信息中的所述业务信息和所述第一系统时间进行加密处理得到第二信息摘要;
确定预设的数据库中是否存储有所述第二信息摘要;
若所述数据库中未存储有所述第二信息摘要,则确定所述第一信号数据包的重复性验证通过;
若所述数据库中存储有所述第二信息摘要,则确定所述第一信号数据包的重复性验证失败。
进一步地,所述验证模块,还用于若所述第一信号数据包的重复性验证通过,则确定所述数据库中是否存储有所述访问令牌;
若所述数据库中存储有所述访问令牌,则确定所述第一信号数据包对应的访问令牌的有效性验证通过;
若所述数据库中未存储有所述访问令牌,则确定所述第一信号数据包对应的访问令牌的有效性验证失败。
进一步地,所述验证模块,还用于若所述第一信号数据包对应的访问令牌的有效性验证通过,则根据所述访问令牌,查询所述数据库中所述访问令牌对应的公钥和私钥;
采用所述私钥,对所述第一密文信息进行解密,得到第三信息摘要;
确定所述第二信息摘要和所述第三信息摘要是否一致;
若所述第二信息摘要和所述第三信息摘要一致,则确定所述第一信号数据包的可信度验证验证通过;
若所述第二信息摘要和所述第三信息摘要不一致,则确定所述第一信号数据包的可信度验证验证失败。
接收模块,还用于接收所述客户端发送的公钥获取请求,所述公钥获取请求包括:所述访问令牌。
生成模块,还用于若所述访问令牌验证通过,采用非对称加密算法,生成所述公钥以及所述公钥对应的私钥。
发送模块,还用于向所述客户端发送公钥获取响应,所述公钥获取请求包括:所述公钥和预设的过期时长。
进一步,若接收模块中所述访问令牌验证通过,所述装置还包括:存储模块;
所述存储模块,用于将所述访问令牌、所述公钥和所述私钥存储至预设的数据库中。
进一步,所述存储模块,还用于若所述访问令牌在所述数据库中的存储时间达到预设的过期时长,则将所述访问令牌,从所述数据库删除。
进一步,所述发送模块,还用于若所述访问令牌验证失败,向所述客户端发送公钥获取失败信息,所述公钥获取失败信息用于指示所述访问令牌验证失败。
第四方面,本申请实施例还提供了一种工业互联网中的业务信息下发装置,所述装置包括:生成模块及发送模块;
所述生成模块,用于根据待下发的业务信息、预设的访问令牌、所述客户端的第一系统时间以及第一密文信息,生成待下发的第一信号数据包;
所述发送模块,用于向网关服务器发送第一信号下发请求,所述第一信号下发请求包括所述第一信号数据包;其中,所述第一信号下发请求用于使得所述网关服务器对所述第一信号数据包进行解析,得到解析信息,并根据所述解析信息对所述第一信号数据包进行至少一项验证,在所述至少一项验证均通过后,根据所述解析信息中的所述业务信息以及所述第一信号数据包生成第二信号数据包,并向业务服务器下发包括所述第二信号数据包的第二信号下发请求。
进一步地,所述生成模块,还用于对所述业务信息和所述第一系统时间进行加密处理,得到第一信息摘要;
根据预设的公钥,采用非对称加密算法,对所述第一信息摘要进行加密,得到第一密文信息;
根据所述业务信息、所述访问令牌、所述第一系统时间以及所述第一密文信息,生成所述第一信号数据包。
进一步地,所述生成模块,还用于所述对所述业务信息和所述第一系统时间进行加密处理,得到第一信息摘要,包括:对所述业务信息和所述第一系统时间进行字符串拼接,得到拼接字符串;采用预设的摘要加密算法,对所述拼接字符串进行加密,得到所述第一信息摘要。
进一步地,所述发送模块,还用于向所述网关服务器发送公钥获取请求,所述公钥获取请求包括:所述访问令牌,所述公钥获取请求用于使得所述网关服务器对所述访问令牌验证通过后,采用非对称加密算法,生成所述公钥以及所述公钥对应的私钥;
在对所述业务信息和所述第一系统时间进行加密处理,得到第一信息摘要之前,该装置还包括:接收模块;
所述接收模块,用于接收所述网关服务器发送的公钥获取响应,所述公钥获取请求包括:所述公钥和预设的过期时长。
进一步地,所述接收模块,还用于接收所述网关服务器发送的公钥获取失败信息,所述公钥获取失败信息用于指示所述访问令牌验证失败。
第五方面,本申请实施例还提供了一种网关服务器,包括存储器、处理器,所述存储器中存储有可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述第一方面所述的方法的步骤。
第六方面,本申请实施例还提供了一种客户端,包括存储器、处理器,所述存储器中存储有可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述第二方面所述的方法的步骤。
第七方面,本申请实施例还提供了一种存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现第一方面所述方法的步骤。
第八方面,本申请实施例还提供了一种存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现第二方面所述方法的步骤。
本申请的有益效果是:
本申请提供一种业务信息下发方法、装置、服务器、客户端及存储介质,该方法包括:接收客户端发送的第一信号下发请求,该第一信号下发请求包括:第一信号数据包,第一信号数据包为客户端根据待下发的业务信息、预设的访问令牌、客户端的第一系统时间以及第一密文信息所生成的数据包;对第一信号数据包进行解析,得到解析信息;根据解析信息对第一信号数据包进行至少一项验证;若至少一项验证均通过,则根据解析信息中的所述业务信息及第一信号数据包生成第二信号数据包;向业务服务器发送第二信号下发请求,该第二信号下发请求包括:业务信息和第二信号数据包。本发明的方案中,网关服务器接收客户端发送的第一信号下发请求,其中,该第一信号数据包是客户端根据待下发的业务信息、预设的访问令牌、客户端的第一系统时间以及第一密文信息所生成的数据包,再对第一信号数据包进行解析,得到解析信息,然后,对该解析信息进行验证,若验证通过,则向业务服务器发送第二信号下发请求,这样可以有效避免任何用户登入系统后获取到访问令牌,从而提高了系统的安全性。
另外,客户端根据对业务信息和第一系统时间进行加密处理得到第一信息摘要,并根据预设的公钥,采用非对称加密算法对第一信息摘要进行加密,所得到的第一密文信息;再根据业务信息、访问令牌、第一系统时间以及第一密文信息,生成待下发第一信号数据包,网关服务器在接收客户端发送的第一信号下发请求之后,对第一信号数据包进行解析,得到解析信息,并根据解析信息对第一信号数据包进行至少一项验证,若解析信息包括:业务信息、访问令牌、第一系统时间以及第一密文信息,则确定第一信号数据包的完整性验证通过,保证第一信号数据包下发的完整性。
其次,网关服务器对第一信号数据包的完整性验证通过之后,网关服务器再确定第一系统时间和网关服务器的第二系统时间的时间差;确定时间差是否大于或等于预设时间阈值;若时间差大于或等于所述预设时间阈值,则确定第一信号数据包的实时性验证失败;若时间差小于预设时间阈值,则确定第一信号数据包的实时性验证通过,这样可以保证第一信号数据包的实时性。
再者,网关服务器对第一信号数据包的实时性验证通过之后,网关服务器再根据解析信息中的业务信息和第一系统时间进行加密处理得到第二信息摘要;确定预设的数据库中是否存储有第二信息摘要;若数据库中未存储有第二信息摘要,则确定第一信号数据包的重复性验证通过;若数据库中存储有第二信息摘要,则确定第一信号数据包的重复性验证失败,以此可以保证由业务信息和第一系统时间构成的字符串信息不会被重复下发,实现了验证信息摘要的唯一性。
然后,网关服务器对第一信号数据包的重复性验证通过之后,网关服务器再确定数据库中是否存储有访问令牌;若数据库中存储有访问令牌,则确定第一信号数据包对应的访问令牌的有效性验证通过;若数据库中未存储有访问令牌,则确定第一信号数据包对应的访问令牌的有效性验证失败。这样可以保证第一信号数据包对应的访问令牌的有效性。
最后,网关服务器对第一信号数据包对应的访问令牌的有效性验证通过,网关服务器再根据访问令牌,查询数据库中访问令牌对应的公钥和私钥;采用私钥,对第一密文信息进行解密,得到第三信息摘要;确定第二信息摘要和第三信息摘要是否一致;若第二信息摘要和第三信息摘要一致,则确定第一信号数据包的可信度验证验证通过;若第二信息摘要和第三信息摘要不一致,则确定第一信号数据包的可信度验证验证失败,以此确定第一信号数据包的可信度验证验证通过,这样可以保证客户端下发的业务信息的可信性。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。
图1为本申请实施例提供的一种工业互联网中的业务信息下发方法的流程示意图。该方法的中的客户端可以是计算机、手机、平板电脑等设备,网关服务器可以工业互联网中的网关,在此不做具体限定。如图1所示,该方法包括:
S10、客户端根据待下发的业务信息、预设的访问令牌以及客户端的第一系统时间以及第一密文信息,生成待下发的第一信号数据包。
在本实施例中,客户端待下发的业务信息可以是文本或字符串记做C,预设访问令牌由网关服务器在响应客户端时返回给客户端的,将该预设的访问令牌记为accesstoken,客户端的第一系统时间是客户端系统当前的时间戳记为T,以及第一密文信息是客户端是为所述客户端根据对所述业务信息和所述第一系统时间进行加密处理得到第一信息摘要,并根据预设的公钥,采用非对称加密算法对所述第一信息摘要进行加密,所得到的密文信息记为KS1,第一信号数据包可以是至少上述4种信息组合形成的,记为SP1。
S100、客户端向网关服务器发送的第一信号下发请求。
其中,第一信号下发请求包括:第一信号数据包SP1,第一信号数据包为客户端根据待下发的业务信息、预设的访问令牌、客户端的第一系统时间以及第一密文信息所生成的数据包,即客户端将该SP1发送给网关服务器。
S101、网关服务器接收客户端发送的第一信号下发请求。
S102、网关服务器对第一信号数据包进行解析,得到解析信息。
具体的,网关服务器在接收到第一信号数据包SP1后,采用JSON方法对SP1进行解析,在此对解析算法不做限定,分别解析出待下发的业务信息C、预设的访问令牌accesstoken、客户端的第一系统时间T、以及第一密文信息KS1。
S103、网关服务器根据解析信息对第一信号数据包进行至少一项验证。
网关服务器根据解析出的信息,需要对第一数据包SP1进行至少一项验证,任何一种验证情况失败,网关服务器都会向客户端返回安全验证失败信息。
S104、在网关服务器中,若至少一项验证均通过,则网关服务器根据解析信息中的业务信息及第一信号数据包生成第二信号数据包。
假设,网关服务器对第一信号数据包SP1进行至少一项验证都通过,即没有出现任何一种安全验证失败信息,则根据解析信息中的业务信息C及第一信号数据包SP1生成第二信号数据包SP2。
S105、网关服务器向业务服务器发送第二信号下发请求。
其中,第二信号下发请求包括:业务信息C和第二信号数据包SP2。网关服务器向业务服务器发送第二信号下发请求。
S106、业务服务器接收网关服务器发送的第二信号下发请求。
在网关服务器向业务服务器发送第二信号下发请求之后,业务服务器接收网关服务器发送第二信号下发请求,至此就完成客户端向业务服务器发送一次信号下发请求。
综上所述,本申请实施例提供一种工业互联网中的业务信息下发方法,该方法包括:接收客户端发送的第一信号下发请求,该第一信号下发请求包括:第一信号数据包,第一信号数据包为客户端根据待下发的业务信息、预设的访问令牌、客户端的第一系统时间以及第一密文信息所生成的数据包;对第一信号数据包进行解析,得到解析信息;根据解析信息对第一信号数据包进行至少一项验证;若至少一项验证均通过,则根据解析信息中的所述业务信息及第一信号数据包生成第二信号数据包;向业务服务器发送第二信号下发请求,该第二信号下发请求包括:业务信息和第二信号数据包。本发明的方案中,网关服务器接收客户端发送的第一信号下发请求,其中,该第一信号数据包是客户端根据待下发的业务信息、预设的访问令牌、客户端的第一系统时间以及第一密文信息所生成的数据包,网关服务器再对第一信号数据包进行解析,得到解析信息,然后,对该解析信息进行验证,若满足验证条件并通过,网关服务器则向业务服务器发送第二信号下发请求,这样可以有效避免任何用户登入系统后获取到访问令牌,从而提高了系统的安全性。
图2为本申请实施例提供的另一种工业互联网中的业务信息下发方法的流程示意图。如图2所示,基于上述图1所述实施例,根据解析信息对第一信号数据包SP1进行至少一项验证,包括:
S200、客户端对业务信息和第一系统时间进行加密处理,得到第一信息摘要。
可选地,客户端对业务信息和第一系统时间进行字符串拼接,得到拼接字符串;采用预设的摘要加密算法,对拼接字符串进行加密,得到第一信息摘要。
具体的,在本实施例中,客户端将业务信息C和第一系统时间T进行字符串拼接,形成的字符串记为S,其中,在进行字符串拼时,通过非字母的字符将业务信息C和第一系统时间T进行字符串连接,例如,业务信息是“Text”,第一系统时间T“20200316090000”,形成的字符串记为S可以是“Text%@#20200316090000”,在此不对形成的字符串S进行限定。
然后,采用MD5(消息摘要算法,Message-Digest Algorithm,简称MD5)加密算法对字符串S进行加密处理,得到第一信息摘要记为CR1,对加密算法不做限定,可以理解,MD5消息摘要算法是一种被广泛使用的密码散列函数,可以产生出一个128位(16字节)的散列值,用于确保信息传输完整一致。
S201、客户端根据预设的公钥,采用非对称加密算法,对第一信息摘要进行加密,得到第一密文信息。
具体的,在本实施例中,客户端根据预设的公钥,采用ECC(Elliptic CurvesCryptography,椭圆曲线加密算法),也可使用RSA(RSA algorithm,非对称加密算法)等对第一信息摘要CR1进行加密,得到第一密文信息记为KS1,在此对非对称加密算法不做限定。
S202、客户端根据业务信息、访问令牌、第一系统时间以及第一密文信息,生成第一信号数据包。
其中,第一信号数据包为客户端根据待下发的业务信息C、预设的访问令牌accesstoken及客户端的第一系统时间T1、第一密文信息KS1所生成的数据包,具体的,第一信号数据包可以是至少上述4种信息组合形成的,记为SP1,客户端将该SP1发送给网关服务器,然后,网关服务器接收客户端发送的第一信号下发请求,并对第一信号数据包SP1进行解析,得到解析信息。
S203、网关服务器确定解析信息是否包括:业务信息、访问令牌、第一系统时间以及第一密文信息。
具体的,网关服务器在接收到第一信号数据包SP1后,采用JSON方法对SP1进行解析,在此对解析算法不做限定,解析出待下发的业务信息C、预设的访问令牌access token、客户端的第一系统时间T和第一密文信息KS1这4种信息。
S204、若解析信息包括:业务信息、访问令牌、第一系统时间以及第一密文信息,则确定第一信号数据包的完整性验证通过。
假设,对第一信号数据包SP1进行解析后,若解析出来的信息包括:业务信息、所述访问令牌、第一系统时间以及第一密文信息,即这4种信息一项也不少,则可以确定第一信号数据包SP1的完整性验证通过。
S205、若解析信息中缺少业务信息、访问令牌、第一系统时间以及第一密文信息中的至少一项信息,则确定第一信号数据包的完整性验证失败。
假设,对第一信号数据包SP1进行解析后,解析出来的信息缺失业务信息C、访问令牌access token、第一系统时间T以及第一密文信息KS1这4中信息中的至少一项,则确定第一信号数据包的完整性验证失败,并向客户端发送安全验证失败信息。
S206、网关服务器向客户端发送安全验证失败。
若确定第一信号数据包的完整性验证失败后,网关服务器向客户端发送安全验证失败信息。
S207、客户端接收网关服务器发送的安全验证失败。
本申请实施例提供另一种工业互联网中的业务信息下发方法,通过客户端根据对业务信息和第一系统时间进行加密处理得到第一信息摘要,并根据预设的公钥,采用非对称加密算法对第一信息摘要进行加密,所得到的第一密文信息;再根据业务信息、访问令牌、第一系统时间以及第一密文信息,生成待下发第一信号数据包,网关服务器在接收客户端发送的第一信号下发请求之后,对第一信号数据包进行解析,得到解析信息,并根据解析信息对第一信号数据包进行至少一项验证,若解析信息包括:业务信息、访问令牌、第一系统时间以及第一密文信息,则确定第一信号数据包的完整性验证通过,保证第一信号数据包下发的完整性。
图3为本申请实施例提供的又一种工业互联网中的业务信息下发方法的流程示意图。如图3所示,基于上述图2所述实施例,根据解析信息对第一信号数据包进行至少一项验证包括以下步骤。
S301、网关服务器确定第一系统时间和网关服务器的第二系统时间的时间差。
若第一信号数据包的完整性验证通过之后,将网关服务器的第二系统时间记为T2,则确定第一系统时间T和网关服务器的第二系统时间T2之间时间差的绝对值记为T3,假设,第一系统时间T是15:36:00,网关服务器的第二系统时间T2是15:40:00,则可以确定T3是4分钟。
S302、网关服务器确定时间差是否大于或等于预设时间阈值。
若时间差不满足大于或等于预设时间阈值,则转至步骤S303,若时间差满足大于或等于所述预设时间阈值,转至步骤S304。
S303、网关服务器确定第一信号数据包的实时性验证通过。
假设,预设时间阈值是5分钟,则可以确定时间差是否大于或等于5分钟,例如,T3取值是4分钟,则可以确定T3不满足大于或等于5(4<5),即该时间差的绝对值T3小于预设时间阈值,则可以确定第一信号数据包SP1的实时性验证通过。
S304、网关服务器确定第一信号数据包的实时性验证失败。
假设,预设时间阈值是5分钟,则可以确定时间差是否大于或等于5分钟,例如,第一系统时间T是15:36:00,网关服务器的第二系统时间T2是15:50:00,则可以确定T3取值是14分钟,则可以确定T3满足大于或等于5(14>5),即该时间差的绝对值T3大于预设时间阈值,则可以确定第一信号数据包SP1的实时性验证失败,并向客户端发送安全验证失败信息。
本申请提供另一种工业互联网中的业务信息下发方法,通过在网关服务器对第一信号数据包的完整性验证通过之后,再确定第一系统时间和网关服务器的第二系统时间的时间差;确定时间差是否大于或等于预设时间阈值;若时间差大于或等于所述预设时间阈值,则确定第一信号数据包的实时性验证失败;若时间差小于预设时间阈值,则确定第一信号数据包的实时性验证通过,这样可以保证第一信号数据包的实时性。
图4为本申请实施例提供的另一种工业互联网中的业务信息下发方法的流程示意图。如图4所示,基于上述图2所述的实施例,根据解析信息对第一信号数据包进行至少一项验证包括以下步骤。
S401、网关服务器根据解析信息中的业务信息和第一系统时间进行加密处理得到第二信息摘要。
若第一信号数据包SP1的实时性验证通过之后,将解析信息中的业务信息C和第一系统时间T进行字符串拼接,形成的新字符串记为S1,然后采用MD5加密算法对S1进行加密处理,得到第二信息摘要记为CR2。
S402、网关服务器确定预设的数据库中是否存储有第二信息摘要。
若数据库中未存储有第二信息摘要CR2,则转至步骤S403,若数据库中存储有第二信息摘要CR2,则转至步骤S404。
S403、网关服务器确定第一信号数据包的重复性验证通过。
假设,若数据库中未存储有第二信息摘要CR2,则确定第一信号数据包SP1的重复性验证通过。具体的,在本实施例中,预设的数据库是Key-Value数据库,在此不做限定,将CR2作为key存入Key-Value数据库并记为CRL,当次下发CR2从CRL中获取相关key值,来确定Key-Value数据库中是否存在该key值,若该key不存在,则可以确定第一信号数据包SP1的重复性验证通过,这样可以保证由业务信息C和第一系统时间构成的字符串信息不会被重复下发,实现了验证信息摘要的唯一性。
S404、网关服务器确定第一信号数据包的重复性验证失败。
若所述数据库中存储有所述第二信息摘要CR2,则确定第一信号数据包SP1的重复性验证失败。具体的,在本实施例中,如步骤S404所述,假设,该key存在,则可以确定第一信号数据包SP1的重复性验证失败,并向客户端发送安全验证失败信息,并向客户端发送安全验证失败信息。
本申请提供另一种工业互联网中的业务信息下发方法,通过在网关服务器对第一信号数据包的完整性验证通过之后,再根据解析信息中的业务信息和第一系统时间进行加密处理得到第二信息摘要;确定预设的数据库中是否存储有第二信息摘要;若数据库中未存储有第二信息摘要,则确定第一信号数据包的重复性验证通过;若数据库中存储有第二信息摘要,则确定第一信号数据包的重复性验证失败,以此可以保证由业务信息和第一系统时间构成的字符串信息不会被重复下发,实现了验证信息摘要的唯一性。
图5为本申请实施例提供的又一种工业互联网中的业务信息下发方法的流程示意图。如图5所示,基于上述图4所述的实施例,根据解析信息对第一信号数据包进行至少一项验证还包括以下步骤:
S501、网关服务器确定数据库中是否存储有访问令牌。
若第一信号数据包SP1的重复性验证通过,则继续确定Key-Value数据库中是否存储有访问令牌。若Key-Value数据库中存储有访问令牌access token,则转至步骤S502,若Key-Value数据库中未存储有访问令牌access token,则转至步骤S503。
S502、网关服务器确定第一信号数据包对应的访问令牌的有效性验证通过。
若Key-Value数据库中存储有访问令牌,则确定第一信号数据包SP1对应的访问令牌access token的有效性验证通过。具体的,在本实施例中,使用access token作为key,可以从Key-Value数据库中获取对应value值,如果寻找到value值,则可以确定第一信号数据包SP1对应的访问令牌access token的有效性验证通过,采用这种验证方法可以保证当前accesstoken的有效性。
S503、网关服务器确定第一信号数据包对应的访问令牌的有效性验证失败。
若Key-Value数据库中未存储有访问令牌access token,则可以确定第一信号数据包SP1对应的访问令牌access token的有效性验证失败。具体的,在本实施例中,如步骤S503所述,假设,如果没有寻找到value值,则可以确定第一信号数据包SP1对应的访问令牌access token的有效性验证失败,并向客户端发送安全验证失败信息。
本申请提供另一种工业互联网中的业务信息下发方法,通过在网关服务器对第一信号数据包的重复性验证通过之后,再确定数据库中是否存储有访问令牌;若数据库中存储有访问令牌,则确定第一信号数据包对应的访问令牌的有效性验证通过;若数据库中未存储有访问令牌,则确定第一信号数据包对应的访问令牌的有效性验证失败。这样可以保证第一信号数据包对应的访问令牌的有效性。
继续参考图5,根据解析信息对第一信号数据包进行至少一项验证,包括:若在网关服务器对第一信号数据包SP1对应的访问令牌access token的有效性验证通过之后,还包括以下步骤:
S504、网关服务器根据访问令牌,查询数据库中访问令牌对应的公钥和私钥。
若在网关服务器对第一信号数据包SP1对应的访问令牌access token的有效性验证通过之后,查询Key-Value数据库中访问令牌access token对应的公钥记为PK1和私钥记为PK2。
S505、网关服务器采用私钥,对第一密文信息进行解密,得到第三信息摘要。
具体的,在本实施例中,采用私钥PK2,通过非对称加密算法来对第一密文信息KS1进行解密,得到第三信息摘要CR3。
S506、网关服务器确定第二信息摘要和第三信息摘要是否一致。
在得到第三信息摘要CR3之后,分析确定第二信息摘要CR2和第三信息摘要CR3是否一致,若第二信息摘要CR2和第三信息摘要CR3一致,则转至步骤S507,否则,转至步骤S508。
S507、网关服务器确定第一信号数据包的可信度验证验证通过。
假设,对第二信息摘要CR2和第三信息摘要CR3进行比对,确定第二信息摘要CR2和第三信息摘要CR3是一致,则可以确定第一信号数据包SP1的可信度验证验证通过,这样可以保证客户端下发的业务信息的可信性。
S508、网关服务器确定第一信号数据包的可信度验证验证失败。
假设,在对第二信息摘要CR2和第三信息摘要CR3进行比对之后,发现第二信息摘要CR2和第三信息摘要CR3是不一致,则可以确定第一信号数据包SP1的可信度验证失败,并向客户端发送安全验证失败信息。
本申请提供另一种工业互联网中的业务信息下发方法,通过在网关服务器对第一信号数据包对应的访问令牌的有效性验证通过之后,再根据访问令牌,查询数据库中访问令牌对应的公钥和私钥;采用私钥,对第一密文信息进行解密,得到第三信息摘要;确定第二信息摘要和第三信息摘要是否一致;若第二信息摘要和第三信息摘要一致,则确定第一信号数据包的可信度验证验证通过;若第二信息摘要和第三信息摘要不一致,则确定第一信号数据包的可信度验证验证失败,以此确定第一信号数据包SP1的可信度验证验证通过,这样可以保证客户端下发的业务信息的可信性。
图6为本申请实施例提供的另一种工业互联网中的业务信息下发方法的流程示意图。如图6所示,接收客户端发送的第一信号下发请求之前,该方法还包括:
S600、客户端向网关服务器发送公钥获取请求。
其中,公钥获取请求包括:访问令牌。在本实施例中,客户端向网关服务端发送获取加密公钥请求记为QPK1,QPK1中至少包含利用常规网关服务器技术分发给客户端的访问令牌access token信息。
S601、网关服务器接收客户端发送的公钥获取请求。
在网关服务器端,接收客户端发送的公钥获取请求。
S602、网关服务器对访问令牌进行验证。
在本实施例中,网关服务器接收到QPK1请求后,采用常规网关校验方式验证access token的正确性。具体的,可以采用JWT(JSON网页令牌,JSON Web Token,简称JWT),可以理解,JWT是目前最流行的跨域身份验证解决方案,也可使用目前较常用的OAuth 2.0(开放授权),需要根据实际情况进行选择,在此不做具体限定。若访问令牌验证通过,则转至步骤S603,否则,转至步骤S604。
S603、网关服务器若访问令牌验证通过,采用非对称加密算法,生成公钥以及公钥对应的私钥。
若获取加密公钥请求QPK1之后,访问令牌access token验证通过,网关服务器采用非对称加密算法生成公钥和私钥密码对,其中公钥记为PK1,私钥记为PK2。在本实施例中,非对称加密算法可以是ECC椭圆曲线加密算法,也可是RSA等非对称加密加密算法,在此不做具体限定,采用非对称加密算法生成公钥和私钥密码对,可以有效提高系统的安全性。
S604、网关服务器向客户端发送公钥失败消息。
若访问令牌access token验证失败,则网关服务器向客户端发送获取公钥信息失败信息,该公钥获取失败信息用于指示访问令牌验证失败。
S605、将访问令牌、公钥和私钥存储至预设的数据库中。
若访问令牌access token验证通过,该方法还包括:网关服务器将访问令牌access token、以及公钥PK1和私钥PK2,以key-value(键-值)的形式存放到Key-Value数据库中,其中access token为key,公钥PK1和私钥PK2通过拼接构成的字符串并存放为value。
S606、若访问令牌在数据库中的存储时间达到预设的过期时长,则将访问令牌,从数据库删除。
若访问令牌access token在Key-Value数据库中的存储时间记为t达到预设的过期时长t1,由Key-Value数据库将访问令牌进行删除。例如,在本实施例中,预设的过期时长t1为2分钟,当前访问令牌access token在Key-Value数据库中的存储时间记为t取值为3分钟,则可以确定该存储时间t达到预设的过期时长t1,即(2<3),则Key-Value数据库将访问令牌进行删除。
S607、网关服务器向客户端发送公钥获取响应。
其中,公钥获取请求包括:公钥和预设的过期时长。
在将访问令牌access token、以及公钥PK1和私钥PK2、存储至预设的Key-Value数据库中之后,网关服务器向客户端发送公钥PK1获取响应,其中,公钥获取请求包括:公钥和预设的过期时长t1,这样可以使得客户端保证至少在预设的过期时长t1时间段内一直保留公钥PK1信息。
S608、客户端接收网关服务器发送的公钥获取响应。
其中,公钥获取请求包括:公钥和预设的过期时长。
图7为本申请实施例提供的一种工业互联网中的业务信息下发装置的流程示意图;如图7所示,应用于网关服务器,该装置包括:
接收模块701,用于接收客户端发送的第一信号下发请求,第一信号下发请求包括:第一信号数据包,第一信号数据包为客户端根据待下发的业务信息、预设的访问令牌、客户端的第一系统时间以及第一密文信息所生成的数据包。
解析模块702,用于对第一信号数据包进行解析,得到解析信息。
验证模块703,用于根据解析信息对第一信号数据包进行至少一项验证。
生成模块704,用于若至少一项验证均通过,则根据解析信息中的业务信息及第一信号数据包生成第二信号数据包。
发送模块705,用于向业务服务器发送第二信号下发请求,第二信号下发请求包括:业务信息和第二信号数据包。
可选地,验证模块703,用于:确定解析信息是否包括:业务信息、访问令牌、第一系统时间以及第一密文信息;其中,第一密文信息为客户端根据对业务信息和第一系统时间进行加密处理得到第一信息摘要,并根据预设的公钥,采用非对称加密算法对第一信息摘要进行加密,所得到的密文信息;
若解析信息包括:业务信息、访问令牌、第一系统时间以及第一密文信息,则确定第一信号数据包的完整性验证通过;
若解析信息中缺少业务信息、访问令牌、第一系统时间以及第一密文信息中的至少一项信息,则确定第一信号数据包的完整性验证失败。
可选地,可选地,验证模块703,用于:若第一信号数据包的完整性验证通过,则确定第一系统时间和网关服务器的第二系统时间的时间差;
确定时间差是否大于或等于预设时间阈值;
若时间差大于或等于预设时间阈值,则确定第一信号数据包的实时性验证失败;
若时间差小于预设时间阈值,则确定第一信号数据包的实时性验证通过。
可选地,验证模块703,用于:若第一信号数据包的完整性验证通过,则根据解析信息中的业务信息和第一系统时间进行加密处理得到第二信息摘要;
确定预设的数据库中是否存储有第二信息摘要;
若数据库中未存储有第二信息摘要,则确定第一信号数据包的重复性验证通过;
若数据库中存储有第二信息摘要,则确定第一信号数据包的重复性验证失败。
可选地,验证模块703,还用于:若第一信号数据包的重复性验证通过,则确定数据库中是否存储有访问令牌;
若数据库中存储有访问令牌,则确定第一信号数据包对应的访问令牌的有效性验证通过;
若数据库中未存储有访问令牌,则确定第一信号数据包对应的访问令牌的有效性验证失败。
可选地,验证模块703,还用于:若第一信号数据包对应的访问令牌的有效性验证通过,则根据访问令牌,查询数据库中访问令牌对应的公钥和私钥;
采用私钥,对第一密文信息进行解密,得到第三信息摘要;
确定第二信息摘要和第三信息摘要是否一致;
若第二信息摘要和第三信息摘要一致,则确定第一信号数据包的可信度验证验证通过;
若第二信息摘要和第三信息摘要不一致,则确定第一信号数据包的可信度验证验证失败。
可选地,接收模块701,还用于接收客户端发送的公钥获取请求,公钥获取请求包括:访问令牌。
可选地,生成模块704,还用于若访问令牌验证通过,采用非对称加密算法,生成公钥以及公钥对应的私钥。
可选地,发送模块705,还用于网关服务器向客户端发送公钥获取响应,公钥获取请求包括:公钥和预设的过期时长。
图8为本申请实施例提供的另一种工业互联网中的业务信息下发装置的结构示意图;如图8所示,若接收模块701中访问令牌验证通过,该装置还包括:存储模块801;
存储模块801,用于将访问令牌、公钥和私钥存储至预设的数据库中;
可选地,存储模块801,还用于若访问令牌在数据库中的存储时间达到预设的过期时长,则将访问令牌,从数据库删除。
可选地,发送模块705,还用于若访问令牌验证失败,业务服务器向客户端发送公钥获取失败信息,公钥获取失败信息用于指示访问令牌验证失败。
图9为本申请实施例提供的又一种工业互联网中的业务信息下发装置的结构示意图;如图9所示,应用于客户端,该装置包括:
生成模块901,用于根据待下发的业务信息、预设的访问令牌、客户端的第一系统时间以及第一密文信息,生成待下发的第一信号数据包;
发送模块902,用于向网关服务器发送第一信号下发请求,第一信号下发请求包括第一信号数据包;其中,第一信号下发请求用于使得网关服务器对第一信号数据包进行解析,得到解析信息,并根据解析信息对第一信号数据包进行至少一项验证,在至少一项验证均通过后,根据解析信息中的业务信息以及第一信号数据包生成第二信号数据包,并向业务服务器下发包括第二信号数据包的第二信号下发请求。
可选地,生成模块901,具体用于:对业务信息和第一系统时间进行加密处理,得到第一信息摘要;
根据预设的公钥,采用非对称加密算法,对第一信息摘要进行加密,得到第一密文信息;
根据业务信息、访问令牌、第一系统时间以及第一密文信息,生成第一信号数据包。
可选地,生成模块901,还用于对业务信息和第一系统时间进行加密处理,得到第一信息摘要,包括:对业务信息和第一系统时间进行字符串拼接,得到拼接字符串;采用预设的摘要加密算法,对拼接字符串进行加密,得到第一信息摘要。
可选地,发送模块902,还用于向网关服务器发送公钥获取请求,公钥获取请求包括:访问令牌,公钥获取请求用于使得网关服务器对访问令牌验证通过后,采用非对称加密算法,生成公钥以及公钥对应的私钥。
图10为本申请实施例提供的另一种工业互联网中的业务信息下发装置的结构示意图;如图10所示,在对业务信息和第一系统时间进行加密处理,得到第一信息摘要之前,该装置还包括:接收模块1001。
接收模块1001,用于客户端接收网关服务器发送的公钥获取响应,公钥获取请求包括:公钥和预设的过期时长。
可选地,接收模块1001,还用于接收网关服务器发送的公钥获取失败信息,公钥获取失败信息用于指示访问令牌验证失败。
上述装置用于执行前述实施例提供的方法,其实现原理和技术效果类似,在此不再赘述。
以上这些模块可以是被配置成实施以上方法的一个或多个集成电路,例如:一个或多个特定集成电路(Application Specific Integrated Circuit,简称ASIC),或,一个或多个微处理器(digital singnal processor,简称DSP),或,一个或者多个现场可编程门阵列(Field Programmable Gate Array,简称FPGA)等。再如,当以上某个模块通过处理元件调度程序代码的形式实现时,该处理元件可以是通用处理器,例如中央处理器(CentralProcessing Unit,简称CPU)或其它可以调用程序代码的处理器。再如,这些模块可以集成在一起,以片上系统(system-on-a-chip,简称SOC)的形式实现。
图11为本申请实施例提供的一种网关服务器的结构示意图,该装置可以集成于网关服务器设备或者网关服务器设备的芯片,该网关服务器可以是具备数据处理功能的计算设备。
该装置包括:处理器1101、存储器1102。
存储器1102用于存储程序,处理器1101调用存储器1102存储的程序,以执行上述方法实施例。具体实现方式和技术效果类似,这里不再赘述。
图12为本申请实施例提供的一种客户端的结构示意图,该装置可以集成于客户端设备或者客户端设备的芯片,该客户端可以是具备数据处理功能的计算设备。该装置包括:处理器1201、存储器1202。
存储器1202用于存储程序,处理器1201调用存储器1202存储的程序,以执行上述方法实施例。具体实现方式和技术效果类似,这里不再赘述。
可选地,本发明还提供一种程序产品,例如计算机可读存储介质,包括程序,该程序在被处理器执行时用于执行上述方法实施例。
在本发明所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(英文:processor)执行本发明各个实施例所述方法的部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(英文:Read-Only Memory,简称:ROM)、随机存取存储器(英文:Random Access Memory,简称:RAM)、磁碟或者光盘等各种可以存储程序代码的介质。