System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术涉及数据安全,尤其涉及一种支持多协议api通讯安全保障方法、系统及存储介质。
技术介绍
1、目前,api通讯安全保障方法大多数实现方案是接口鉴权通过token方案或接口签名等方式,对接口进行鉴权,以保证接口的合法性和安全性,使用https协议保证数据传输的安全性,防止数据被窃取或篡改。随着业务发展,在实际的业务开发过程中,常常会碰到需要与第三方互联网公司进行技术对接,例如支付宝支付对接、微信支付对接、高德地图查询对接等等服务,如果是一个创业型互联网公司,大部分可能都是对接别的公司api接口,系统服务内部各个功能模块接口对接也越来多,token 方案也有一些缺点。最明显的就是服务接口进行接口对接的时候,当接口请求量非常大,这个时候 token 突然失效了,会有大量的接口请求失败,因此这将导致服务之前调用失败、负载急剧增高,最终导致业务系统不可用。如果采用签名的方案又仅仅支持http方式或者仅仅支持rpc调用,如果业务系统同时需要满足api支持多种协议通讯时,算法实现的重复工作量增多,且不具有通用性、不具有易用性。
技术实现思路
1、本专利技术的目的在于克服现有技术的不足,提供一种支持多协议api通讯安全保障方法、系统及存储介质。
2、本专利技术的目的是通过以下技术方案来实现的:本专利技术第一方面提供:一种支持多协议api通讯安全保障方法,包括以下步骤:
3、s10:申请签证阶段,在业务客户端发起api请求时,请求端将业务标识与需要安全保护的数据共同作
4、s11:签证字符串生成阶段,api client 服务端收到签证请求后,将请求参数数据包根据类型、数据转换client定义的数据结构键值进行排序,将排序后的键值对结构数据通过发起时指定的算法进行加密,同时在api client服务端将加密后的数据与当前并发时间戳和全局唯一随机数共同混合,定义新的数据结构,最后再将加密后的数据进行编码压缩形成签证字符串;
5、s12:签证信息生成阶段,api client服务端将当前业务需要的签证字符串进行多级缓存处理,以业务标识结合当前业务请求链路唯一标识作为缓存键,缓存策略有效期由业务调用申请方进行设定,最后将签证信息发送到业务客户端;
6、s13:签证信息校验阶段,业务客户端收到签证信息后,在请求处添加注解标识,发送请求到签证验证服务端,签证验证服务端先校验签证信息有效时间,时间失效时则驳回;再校验签证信息是否重复使用,被重复使用时则驳回,最后再校验签证信息的数据包是否有被篡改,当被数据包被篡改将驳回当前链路请求,当三重校验均通过后再进行后续业务逻辑流程。
7、优选的,所述的s10:申请签证阶段,在业务客户端发起api请求时使用http协议或rpc协议。
8、优选的,所述的s11:签证字符串生成阶段,按照签证请求中非空参数名的accii码从小到大进行排序,将排序后的键值对结构数据通过发起时指定的hmac算法或rsa算法进行加密。并不局限于这两种加密算法,也可以使用其他加密算法,只要能实现加密的目的均在本专利技术的保护范围之内。
9、优选的,所述的s11:签证字符串生成阶段,每次签证请求在发送时携带一个时间戳并发送一个随机数给后端,后端会验证该时间戳是否在预设时间内并只接受相同的随机数一次。
10、优选的,所述的s12:签证信息生成阶段,多级缓存处理使用caffeine本地缓存和redis缓存两级缓存框架,第一级缓存使用caffeine本地缓存,第二级缓存使用redis缓存;进行多级缓存处理时,获取签证字符串对应的缓存数据,如果没有在第一级缓存中且在第二级缓存中,则放入到第一级缓存;然后调用第一级缓存查询是否存在指定的值,如果不存在则校验是否能在第二级缓存中查询到指定的值,如果能查询到指定的值则放入第一级缓存,如果不能查询到指定的值则认定该签证字符串已失效。
11、优选的,所述的s12:签证信息生成阶段,使用pub/sub消息机制更新操作,通过监听listener 删除指定第一级缓存的指定值,使用pub/sub消息进行监听,使用json 序列化进行数据传输。
12、本专利技术第二方面提供:一种支持多协议api通讯安全保障系统,用于实现上述任一种支持多协议api通讯安全保障方法,包括:
13、申请签证模块,能在业务客户端发起api请求时,将业务标识与需要安全保护的数据共同作为请求参数数据包发送给api client 服务端申请签证、创建签证包客户对象;
14、签证字符串生成模块,能在api client 服务端收到签证请求后,将请求参数数据包根据类型、数据转换client定义的数据结构键值进行排序,将排序后的键值对结构数据通过发起时指定的算法进行加密,同时在api client服务端将加密后的数据与当前并发时间戳和全局唯一随机数共同混合,定义新的数据结构,最后再将加密后的数据进行编码压缩形成签证字符串;
15、签证信息生成模块,能将当前业务需要的签证字符串进行多级缓存处理,以业务标识结合当前业务请求链路唯一标识作为缓存键,缓存策略有效期由业务调用申请方进行设定,最后将签证信息发送到业务客户端;
16、签证信息校验模块,能在业务客户端收到签证信息后,在请求处添加注解标识,发送请求到签证验证服务端,签证验证服务端先校验签证信息有效时间,时间失效时则驳回;再校验签证信息是否重复使用,被重复使用时则驳回,最后再校验签证信息的数据包是否有被篡改,当被数据包被篡改将驳回当前链路请求,当三重校验均通过后再进行后续业务逻辑流程。
17、本专利技术第三方面提供:一种计算机可读存储介质,所述的计算机可读存储介质中存储有计算机可执行指令,所述计算机可执行指令被处理器加载并执行时,实现如上述任一种支持多协议api通讯安全保障方法。
18、本专利技术的有益效果是:
19、1)只要在通讯过程中添加注解标注,可以对任何请求协议的对api进行验证。
20、2)能支持调用自定义设置加密方式进行安全签证,支持调用方能自定义多级缓存策略快速验证。
21、3)对于通讯需要快速签证验签的需求,都能够快速校验。
本文档来自技高网...【技术保护点】
1.一种支持多协议API通讯安全保障方法,其特征在于:包括以下步骤:
2.根据权利要求1所述的支持多协议API通讯安全保障方法,其特征在于:所述的S10:申请签证阶段,在业务客户端发起API请求时使用Http协议或RPC协议。
3.根据权利要求1所述的支持多协议API通讯安全保障方法,其特征在于:所述的S11:签证字符串生成阶段,按照签证请求中非空参数名的ACCII码从小到大进行排序,将排序后的键值对结构数据通过发起时指定的HMAC算法或RSA算法进行加密。
4.根据权利要求1所述的支持多协议API通讯安全保障方法,其特征在于:所述的S11:签证字符串生成阶段,每次签证请求在发送时携带一个时间戳并发送一个随机数给后端,后端会验证该时间戳是否在预设时间内并只接受相同的随机数一次。
5.根据权利要求1所述的支持多协议API通讯安全保障方法,其特征在于:所述的S12:签证信息生成阶段,多级缓存处理使用Caffeine本地缓存和Redis缓存两级缓存框架,第一级缓存使用Caffeine本地缓存,第二级缓存使用Redis缓存;进行多级缓存处理
6. 根据权利要求5所述的支持多协议API通讯安全保障方法,其特征在于:所述的S12:签证信息生成阶段,使用PUB/SUB消息机制更新操作,通过监听Listener 删除指定第一级缓存的指定值,使用PUB/SUB消息进行监听,使用JSON 序列化进行数据传输。
7.一种支持多协议API通讯安全保障系统,其特征在于:用于实现如权利要求1-6任一项所述的支持多协议API通讯安全保障方法,包括:
8.一种计算机可读存储介质,其特征在于:所述的计算机可读存储介质中存储有计算机可执行指令,所述计算机可执行指令被处理器加载并执行时,实现如权利要求1-6任一项所述的支持多协议API通讯安全保障方法。
...【技术特征摘要】
1.一种支持多协议api通讯安全保障方法,其特征在于:包括以下步骤:
2.根据权利要求1所述的支持多协议api通讯安全保障方法,其特征在于:所述的s10:申请签证阶段,在业务客户端发起api请求时使用http协议或rpc协议。
3.根据权利要求1所述的支持多协议api通讯安全保障方法,其特征在于:所述的s11:签证字符串生成阶段,按照签证请求中非空参数名的accii码从小到大进行排序,将排序后的键值对结构数据通过发起时指定的hmac算法或rsa算法进行加密。
4.根据权利要求1所述的支持多协议api通讯安全保障方法,其特征在于:所述的s11:签证字符串生成阶段,每次签证请求在发送时携带一个时间戳并发送一个随机数给后端,后端会验证该时间戳是否在预设时间内并只接受相同的随机数一次。
5.根据权利要求1所述的支持多协议api通讯安全保障方法,其特征在于:所述的s12:签证信息生成阶段,多级缓存处理使用caffeine本地缓存和redis缓存两级缓存框架,第一级缓存使用caffeine本地缓存,...
【专利技术属性】
技术研发人员:徐磊,李鑫,李圳炜,陈明明,李勇,
申请(专利权)人:四川汇安融信息技术股份有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。