发明内容
本发明提供了一种URL数据加密传输方法及系统,用以解决现有技术中在web端对部分URL进行加密安全性低的问题。
根据本发明的一个方面,提供了一种URL数据加密传输方法,包括:
在终端需要向服务器发送业务请求之前,终端侧的应用提取终端激活验证时服务器下发给终端的激活码;利用激活码和当前时间按照终端侧的加密算法进行加密计算,生成动态密钥;将动态密钥附加在与业务请求对应的统一资源定位符URL上,并截取除主机地址之外的部分URL,对该部分URL进行HASH计算,得到该部分URL的第一HASH值;将第一HASH值附加到URL上,得到加密后的URL;通过加密后的URL将业务请求发送至浏览器端。
进一步地,上述方法还包括:接收来终端的激活验证信息,激活验证信息包括:员工工号、终端的验证信息以及MAC、国际移动设备身份码IMEI信息进行激活验证;根据接收到的激活验证信息对终端进行激活验证;如果端验证成功,接收服务器下发的激活码,并将激活码保存在系统为应用提供的独立空间中。
进一步地,上述方法还包括:在服务器根据接收到的激活验证信息对终端进行激活验证之前,发送短信密码给终端。
其中,上述服务器根据接收到的激活验证信息对终端进行激活验证包括:
服务器判断员工工号、MAC以及IMEI与预先配置的信息是否一致,并判断发送短信密码的终端与申请员工工号的终端是否一致。
进一步地,上述方法还包括:当服务器接收到终端的业务请求之后,利用保存的与用户对应的激活码对动态密钥进行解密,得到业务请求的请求时间;将业务请求的请求时间与当前时间进行对比;如果请求时间与当前时间的差值小于预设时间值,则截取除主机地址之外的URL,对该部分URL进行HASH计算,得到该部分URL的第二HASH值;将第二HASH值与第一HASH值进行比较;如果第二HASH值与上述第一HASH值相等,则接收业务请求。
根据本发明的另一个方面,提供了一种URL数据加密传输系统,包括:
提取模块,用于在终端需要向服务器发送业务请求之前,提取终端激活验证时服务器下发给终端的激活码;生成模块,用于利用激活码和当前时间按照终端侧的加密算法进行加密计算,生成动态密钥;计算模块,用于将动态密钥附加在与业务请求对应的统一资源定位符URL上截取除主机地址之外的部分URL,对该部分URL进行HASH计算,得到该部分URL的第一HASH值;附加模块,用于将第一HASH值附加到URL上,得到加密后的URL;发送模块,用于通过加密后的URL将业务请求发送至浏览器端。
进一步地,上述系统还包括:接收模块,用于接收来自终端的激活验证信息,激活验证信息包括:员工工号、终端的验证信息以及MAC、IMEI信息进行激活验证;验证模块,用于根据接收到的激活验证信息对终端进行激活验证;保存模块,用于如果服务器端验证成功,接收服务器下发的激活码,并将激活码保存在系统为应用提供的独立空间中。
进一步地,上述系统还包括:第二发送模块,用于在服务器根据接收到的激活验证信息对终端进行激活验证之前,发送短信密码给终端。
其中,上述验证模块包括:第一判断单元,判断员工工号、MAC以及IMEI与预先配置的信息是否一致;第二判断单元,用于判断发送短信密码的终端与申请员工工号的终端是否一致。
进一步地,上述系统还包括:解密模块,用于当服务器接收到终端的业务请求之后,利用保存的与用户对应的激活码对动态密钥进行解密,得到业务请求的请求时间;第一比较模块,用于将业务请求的请求时间与当前时间进行对比;第二计算模块,用于如果请求时间与当前时间的差值小于预设时间值,则截取除主机地址之外的URL,对该部分URL进行HASH计算,得到该部分URL的第二HASH值;第二比较模块,用于将第二HASH值与第一HASH值进行比较;第二接收模块,用于如果第二HASH值与第一HASH值相等,则接收业务请求。
本发明的技术方案,在客户端通过激活后获取的动态密钥进行加密,使非法用户不能通过WEB端的代码直接伪造加密过程,因此无法直接通过修改参数计算HASH值达到篡改URL的目的,同时采用基于时间的动态密钥进行加密传输,增加了破解难度,并且对请求进行时间限制,进一步保证了请求的URL的合法性。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明实施例作进一步详细的说明。
图1是本发明的URL数据加密传输方法的流程图。
如图1所示,该方法包括以下步骤:
步骤101:在终端需要向服务器发送业务请求之前,终端侧的应用提取终端激活验证时服务器下发给终端的激活码;
步骤102:利用激活码和当前时间按照终端侧的加密算法进行加密计算,生成动态密钥;
步骤103:将动态密钥附加在与与业务请求对应的统一资源定位符URL上截取除主机地址之外的部分URL,对该部分URL进行HASH计算,得到该部分URL的第一HASH值;
步骤104:将动态密钥附加到URL上,得到加密后的URL;
步骤105:通过加密后的URL将业务请求发送至浏览器端。
其中,在上述步骤101之前,若终端要登陆系统向服务器发送业务请求,那么终端必须为授权终端,即预先配置了MAC、IMEI(InternationalMobileEquipmentIdentity,国际移动设备身份码)IMEI、授权用户工号等信息的被允许使用系统的终端。在系统被第一次使用前,应用会检查系统是否被激活,如果需要激活,需要对用户提交的员工工号、短信密码以及系统自动采集的MAC、IMEI信息进行验证,激活后服务端产生激活码并进行加密保存在服务端并传送给终端,终端将其以文件形式保存在系统为应用程序提供的独立空间,需要说明的是,本方的URL数据加密传输方法适用于使用安卓系统的终端,基于此,终端可以将激活码以文件的形式保存在沙箱中。
其中,服务器端对终端进行激活验证的步骤具体如下:
接收来终端的激活验证信息,该激活验证信息包括:员工工号、终端的验证信息以及MAC、IMEI信息进行激活验证;其中,员工工号是用于唯一标识用户身份的号码,是由服务器生成并分发给授权终端的。
根据接收到的激活验证信息对终端进行激活验证;在此之前,服务器需要发送短信密码给终端,然后接收终端通过发送短信反馈的短信密码,判断发送短信密码的终端是否与之前申请员工工号的终端一致,同时还需要判断器判断员工工号、MAC以及IMEI与预先配置的信息是否一致;
如果上述信息均一致,则终端激活验证成功,终端接收服务器下发的激活码,并将激活码保存在系统为应用提供的独立空间中。
在上述步骤103中,可以通过对截取的除主机地址之外的URL进行MD5计算其特征值,将特征值附加到上述业务请求对应的URL上。
在上述步骤105之后,服务器对接收到的URL进行解密并判断终端的业务请求是否合法需要进行如下步骤,图2是本发明服务器判断终端的请求是否合法的流程图。
步骤201:当服务器接收到终端的业务请求之后,利用保存的与用户对应的激活码对动态密钥进行解密,得到业务请求的请求时间;
激活码是由服务器生成,生成激活码后,服务器端会保存响应的激活码以及激活码与员工工号的对应关系。
步骤202:将业务请求的请求时间与当前时间进行对比;
步骤203:如果请求时间与当前时间的差值小于预设时间值,则截取除主机地址之外的URL,对该部分URL进行HASH计算,得到该部分URL的第二HASH值;
步骤204:将第二HASH值与第一HASH值进行比较;
步骤205:如果第二HASH值与上述第一HASH值相等,则接收业务请求。
图3是本发明的URL加密以及解密过程的信令流程图。
以下结合图3对URL加密以及解密过程进行简要说明:
在URL加密阶段,首先浏览器端在向服务器请求之前,先调用客户端CS侧加密算法,CS侧采集系统时间,利用系统时间与激活码生成动态密钥,该激活码是终端向服务器端激活认证时,由服务器端生成并下发给终端的。计算出传输数据的HASH值,并基于生成的动态密钥传输数据的HASH值,并将加密后的URL返回给浏览器,浏览器端用加密后的URL向服务器端请求,服务器端接收到加密后的URL后,根据动态密钥利用存储的激活码求解出请求时间,将请求时间与当前系统时间进行比较,并进行HASH验证,如果二者时间差在预设时间段内并且HASH验证通过,则服务器认定该请求合法,对该请求做出响应。
本发明还提供了一种URL数据加密传输系统,图4是该URL数据加密传输系统40的结构框图。如图4所示,该系统包括以下组成部分:
提取模块41,用于在终端需要向服务器发送业务请求之前,提取终端激活验证时服务器下发给终端的激活码;生成模块42,用于利用激活码和当前时间按照终端侧的加密算法进行加密计算,生成动态密钥;计算模块43,将动态密钥附加在业务请求对应的URL上,并截取除主机地址之外的部分URL,对该部分URL进行HASH计算,得到该部分URL的第一HASH值;附加模块44,用于将第一HASH值附加到URL上,得到加密后的URL;发送模块45,用于通过加密后的URL将业务请求发送至浏览器端。
在终端授权激活阶段,终端需要向服务器请求激活验证,基于此,上述系统还可以包括:接收模块,用于接收来自终端的激活验证信息,激活验证信息包括:员工工号、终端的验证信息以及MAC、IMEI信息进行激活验证;验证模块,用于根据接收到的激活验证信息对终端进行激活验证;保存模块,用于如果服务器端验证成功,接收服务器下发的激活码,并将激活码保存在系统为应用提供的独立空间中,第二发送模块,用于在服务器根据接收到的激活验证信息对终端进行激活验证之前,发送短信密码给终端。其中,接收模块、验证模块、第二发送模块以及保存模块位于服务器侧,这些模块用于实现对终端的激活验证功能。
其中,上述验证模块具体可以包括以下组成部分,用于根据接收到的激活验证信息对终端进行激活验证。第一判断单元,判断员工工号、MAC以及IMEI与预先配置的信息是否一致;第二判断单元,用于判断发送短信密码的终端与申请员工工号的终端是否一致。
其中,在服务器端接收加密后的URL后,为了对其进行解密,如图5所示,在具备上述用于对URL进行加密的各模块的基础上,上述URL数据加密传输系统还需要包括对URL进行解密的模块,这些模块需要设置于服务器中。这些模块具体用于实现以下功能:
解密模块51,用于当服务器接收到终端的业务请求之后,利用保存的与用户对应的激活码对动态密钥进行解密,得到业务请求的请求时间;第一比较模块52,用于将业务请求的请求时间与当前时间进行对比;第二计算模块53,用于如果请求时间与当前时间的差值小于预设时间值,则截取除主机地址之外的URL,对该部分URL进行HASH计算,得到该部分URL的第二HASH值;第二比较模块54,用于将第二HASH值与第一HASH值进行比较;第二接收模块55,用于如果第二HASH值与上述第一HASH值相等,则接收业务请求。
本发明的技术方案,在客户端进行加密,使非法用户通过WEB端的代码不能直接看到加密过程,因此无法直接通过修改参数计算HASH值达到篡改URL的目的,同时采用基于时间的动态密钥进行加密传输,增加了破解难度,并且对请求进行时间限制,进一步保证了请求的URL的合法性。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。