本申请涉及网络安全,特别涉及一种安全签名校验方法、系统及设备。
背景技术:
1、目前,车辆网平台等服务平台在与接入的第三方平台之间进行http(hypertexttransfer protocol,超文本传输协议)api(applicationprogramming interface,应用程序接口)交互时,往往会使用签名校验来达到防篡改、防信息泄露、信息完整性校验等效果。
2、相关技术中,通常会使用aws签名或者微信签名校验来实现服务平台与第三方平台间的验签,不过其一般是通过一层加密或二层加密来生成签名,往往容易被破解,以致安全性较差;此外,当前的验签策略往往无法实现同一请求内容在时间线上的重复调用。
技术实现思路
1、本申请提供一种安全签名校验方法、系统及设备,以解决相关技术中通过一层加密或二层加密生成签名而导致安全性较差以及无法实现同一请求内容在时间线上重复调用的问题。
2、第一方面,提供了一种安全签名校验方法,所述方法应用于第三方平台,所述方法包括以下步骤:
3、在向服务平台发送数据请求前,对请求头中的接入密钥、请求时间和统一资源标识符进行拼接,并基于私有密钥对拼接结果进行加密,得到请求头加密结果,所述接入密钥和私有密钥是一对由服务平台为每个接入其中的第三方平台生成的唯一密钥对;
4、对请求参数进行加密,得到请求参数加密结果;
5、基于请求头加密结果对请求参数加密结果进行加密,生成请求签名并将其添加至请求头中,以供服务平台基于请求头中的请求签名和接入密钥进行验签。
6、第二方面,提供了一种安全签名校验方法,所述方法应用于服务平台,所述方法包括以下步骤:
7、为每个接入其中的第三方平台生成一个唯一的包含接入密钥和私有密钥的密钥对;
8、当接收到第三方平台发送的数据请求时,查询是否已存储有与请求头中的接入密钥对应的私有密钥;
9、若是,基于私有密钥对请求头中的拼接结果进行加密,得到请求头加密结果;
10、对请求参数进行加密,得到请求参数加密结果;
11、基于请求头加密结果对请求参数加密结果进行加密,生成请求签名,并判断所述请求签名与请求头中包含的由第三方平台生成的请求签名是否相同;
12、若相同,则判定通过防篡改校验。
13、一些实施例中,在所述判定通过防篡改校验的步骤之后,还包括:
14、判断缓存中是否存在所述请求签名;
15、若缓存中存在所述请求签名,则判定未通过防劫持校验和防攻击校验,并不对所述数据请求进行响应;
16、若缓存中不存在所述请求签名,则判定通过防劫持校验和防攻击校验并将所述请求签名存储至缓存中,且对所述数据请求进行响应。
17、一些实施例中,在所述判断所述请求签名与请求头中包含的由第三方平台生成的请求签名是否相同的步骤之后,还包括:
18、若所述请求签名与请求头中包含的由第三方平台生成的请求签名不相同,则判定未通过防篡改校验,且不对所述数据请求进行响应。
19、一些实施例中,在所述查询是否已存储有与请求头中的接入密钥对应的私有密钥的步骤之后,还包括:
20、若未存储有与请求头中的接入密钥对应的私有密钥,则判定第三方平台的身份认证失败,且不对所述数据请求进行响应。
21、一些实施例中,所述对请求参数进行加密,得到请求参数加密结果,包括:
22、按照请求参数类型对请求参数进行字符串转换,得到目标字符串;
23、对所述目标字符串进行加密,得到请求参数加密结果。
24、一些实施例中,通过hmac-sha-256加密算法实现加密。
25、第三方面,提供了一种安全签名校验系统,包括第三方平台,所述第三方平台用于:
26、在向服务平台发送数据请求前,对请求头中的接入密钥、请求时间和统一资源标识符进行拼接,并基于私有密钥对拼接结果进行加密,得到请求头加密结果,所述接入密钥和私有密钥是一对由服务平台为每个接入其中的第三方平台生成的唯一密钥对;
27、对请求参数进行加密,得到请求参数加密结果;
28、基于请求头加密结果对请求参数加密结果进行加密,生成请求签名并将其添加至请求头中,以供服务平台基于请求头中的请求签名和接入密钥进行验签。
29、第四方面,提供了一种安全签名校验系统,包括服务平台,所述服务平台用于:
30、为每个接入其中的第三方平台生成一个唯一的包含接入密钥和私有密钥的密钥对;
31、当接收到第三方平台发送的数据请求时,查询是否已存储有与请求头中的接入密钥对应的私有密钥;
32、若是,基于私有密钥对请求头中的拼接结果进行加密,得到请求头加密结果;
33、对请求参数进行加密,得到请求参数加密结果;
34、基于请求头加密结果对请求参数加密结果进行加密,生成请求签名,并判断所述请求签名与请求头中包含的由第三方平台生成的请求签名是否相同;
35、若相同,则判定通过防篡改校验。
36、第五方面,提供了一种安全签名校验设备,包括:存储器和处理器,所述存储器中存储有至少一条指令,所述至少一条指令由所述处理器加载并执行,以实现前述的安全签名校验方法。
37、本申请提供了一种安全签名校验方法、系统及设备,包括在向服务平台发送数据请求前,对请求头中的接入密钥、请求时间和统一资源标识符进行拼接,并基于私有密钥对拼接结果进行加密,得到请求头加密结果,所述接入密钥和私有密钥是一对由服务平台为每个接入其中的第三方平台生成的唯一密钥对;对请求参数进行加密,得到请求参数加密结果;基于请求头加密结果对请求参数加密结果进行加密,生成请求签名并将其添加至请求头中,以供服务平台基于请求头中的请求签名和接入密钥进行验签。本申请通过三层加密的方式来生成签名,即分别对请求头和请求参数进行加密,并对两者的加密结果再进行一次加密来生成签名,以有效防止签名被破解,进而提高验签的安全性;且由于签名是基于包括请求时间在内的信息进行加密后生成的,而每一次调用的请求时间均是不同的,因此对于同一请求内容也会生成不同的签名,进而可以对同一请求内容进行重复验签,从而实现了同一请求内容在时间线上的重复调用。
1.一种安全签名校验方法,其特征在于,所述方法应用于第三方平台,所述方法包括以下步骤:
2.一种安全签名校验方法,其特征在于,所述方法应用于服务平台,所述方法包括以下步骤:
3.如权利要求2所述的安全签名校验方法,其特征在于,在所述判定通过防篡改校验的步骤之后,还包括:
4.如权利要求2所述的安全签名校验方法,其特征在于,在所述判断所述请求签名与请求头中包含的由第三方平台生成的请求签名是否相同的步骤之后,还包括:
5.如权利要求2所述的安全签名校验方法,其特征在于,在所述查询是否已存储有与请求头中的接入密钥对应的私有密钥的步骤之后,还包括:
6.如权利要求1至5中任一项所述的安全签名校验方法,其特征在于,所述对请求参数进行加密,得到请求参数加密结果,包括:
7.如权利要求1至5中任一项所述的安全签名校验方法,其特征在于:通过hmac-sha-256加密算法实现加密。
8.一种安全签名校验系统,其特征在于,包括第三方平台,所述第三方平台用于:
9.一种安全签名校验系统,其特征在于,包括服务平台,所述服务平台用于:
10.一种安全签名校验设备,其特征在于,包括:存储器和处理器,所述存储器中存储有至少一条指令,所述至少一条指令由所述处理器加载并执行,以实现权利要求1至7中任一项所述的安全签名校验方法。