一种微服务接口安全调用装置制造方法及图纸

技术编号:18460749 阅读:30 留言:0更新日期:2018-07-18 13:30
本发明专利技术提供了一种微服务接口安全调用装置及基于其的加密方法,其中,微服务接口安全调用装置,包括:调用方接口以及服务方接口。调用方接口包括:ecc加密模块;本地秘钥模块,其包括秘钥文件请求模块、秘钥保存模块以及aes秘钥生成模块;aes加密模块;以及业务请求模块。服务方接口包括:请求接收模块;秘钥管理模块,其包括:用户验证模块、短信验证模块、秘钥文件生成模块以及秘钥保存模块;防重放模块;防篡改模块;参数还原模块;以及业务处理模块。微服务接口安全调用装置及基于其的加密方法,解决现有技术中不能防伪装攻击、不能防篡改攻击、不能防重放攻击以及不能防数据信息泄漏的问题。

A micro service interface security calling device and encryption method based on it

The invention provides a security call device for a micro service interface and an encryption method based on it, in which the security call device of the micro service interface, including the caller interface and the service side interface. The caller interface includes: ECC encryption module; local secret key module, which includes secret key file request module, secret key storage module and AES secret key generation module; AES encryption module; and business request module. The service interface includes the request receiving module, the secret key management module, which includes the user authentication module, the SMS verification module, the secret key file generation module and the secret key preservation module; the anti replay module; the tamper proofing module; the parameter reduction module; and the business processing module. The security call device of the micro service interface and the encryption method based on it can solve the problem that the existing technology can not prevent the camouflage attack, can not prevent the tamper attack, can not prevent the replay attack and can not prevent the data information leakage.

【技术实现步骤摘要】
一种微服务接口安全调用装置及基于其的加密方法
本专利技术涉及微服务系统,具体涉及一种微服务接口安全调用装置及基于其的加密方法。
技术介绍
现在的软件开发中经常用到接口,尤其是基于微服务架构的软件开发,数据交互全是用的restful风格的http接口。但是写个接口,不向任何人告知我的接口地址,接口未必安全,但凡部署在广域网的应用程序,很多工具可以根据ip或域名扫描应用程序的所有暴露的接口,进而分析参数,注入程序,服务器不存在安全策略的情况下,核心业务数据库和主要业务主机都会很容易受到第三方攻击。接口调用安全问题主要建立在以下假设下:假设公共网络是不安全的,一切基于HTTP协议的请求/响应都是可以被截获的、篡改、重放(重发)的。现有技术主要缺点:1、不能防第三方攻击:第三方有意或恶意的调用我们的接口,现有的接口就算使用了加密方案,当加密的秘钥被破解后,核心业务安全仍然得不到保障。;2、不能防篡改攻击:如果没有对应的处理,正常请求在传输过程被篡改系统却无法得知请求是否被篡改,业务仍然得不到保障;3、不能防重放攻击:如果没有对应的处理,请求被截获,截获者可以用截获的请求向服务器短时间内发起上千甚至上万次重复的请求,服务器如果承受不了就会崩溃;
技术实现思路
本专利技术要提供一种微服务接口安全调用装置及基于其的加密方法,解决现有技术中不能防第三方攻击、不能防篡改攻击、不能防重放攻击的问题。为实现上述目的,本专利技术采用了如下的技术方案:本专利技术首先提出了一种微服务接口安全调用装置,包括:接口调用方以及接口服务方;接口调用方包括:ecc加密模块,用于提取出请求参数组s1并对数组s1进行ecc加密得到数组s2;本地秘钥模块,其包括秘钥文件请求模块、秘钥文件保存模块以及aes秘钥生成模块,秘钥文件请求模块向接口服务方的秘钥管理模块请求秘钥文件m1并接收接口服务方的秘钥管理模块返回结果r1,本地秘钥模块通过返回结果r1和短信验证码解密得到秘钥文件m1,秘钥文件保存模块将秘钥文件m1保存至本地磁盘,aes秘钥生成模块获取当前时间t1并将秘钥文件m1和t1按照动态秘钥生成规则生成aes秘钥a1;aes加密模块,其用于对s2+t1用a1通过AES对称加密方法加密得到验证参数auth;业务请求模块,用得到的auth组装新的参数组s2+t1+auth,并向接口服务方发送业务请求;接口服务方包括:请求接收模块,接收秘钥文件请求模块发送的秘钥文件m1请求或业务请求模块发送的业务请求,并判断所述请求是请求秘钥文件m1还是业务请求,如果是请求秘钥文件则进入秘钥管理模块,如果是业务请求则进入防重放模块;秘钥管理模块,其包括:用户验证模块、短信验证模块、秘钥文件生成模块以及秘钥文件保存模块,用户验证模块用于提取请求中的用户账号并判断用户账号是否存在,短信验证模块用于向用户账号对应的手机号发送验证短信并验证短信验证码是否正确;秘钥文件生成模块用于生成用户对应的秘钥文件m1,秘钥文件m1是根据用户请求中所需要的秘钥长度来生成的固定行数列数的矩阵,矩阵的字符由系统随机生成;秘钥文件保存模块用于保存用户账号以及用户账号对应的秘钥文件m1;防重放模块,提取业务请求参数组s2+t1+auth中的时间参数t1,并将t1与当前时间比较是否超过指定值(比如5s),当当前时间减去t1小于等于5s时,进入防篡改模块,当当前时间减去t1大于5s时摒弃请求,以拦截恶意重复请求;防篡改模块,提取业务请求参数组s2+t1+auth中的验证参数auth,通过aes解密得到s2’+t1’,并判断s2’+t1’是否与原请求的s2+t1一样,如果不一样则原参数被篡改且验证不通过,如果一样,进入参数还原模块;参数还原模块,提取业务请求中参数组s2+t1+auth中的参数s2,通过ecc解密将s2解密得到原参数组s1,并进入业务处理模块;业务处理模块,提取参数组s1的所有参数并进行对应的业务处理。本专利技术还提供了一种基于微服务接口安全调用装置的加密方法,包括以下步骤:S1、ecc加密模块提取出请求参数组s1,对数组s1进行ecc加密得到数组s2;S2、aes加密模块拿到数组s2,检查本地是否有秘钥文件,如果有,进行步骤S5;如果没有,进行步骤S3;S3、本地秘钥模块的秘钥文件请求模块向接口服务方发起获取秘钥文件m1请求;S4、接口服务方的请求接收模块接收网络请求,判断所述请求是请求秘钥文件还是业务请求,如果是请求秘钥文件则进行步骤S5获取秘钥文件m1,如果是业务请求则进行步骤11;S5、获取秘钥文件m1:S51、秘钥管理模块的用户验证模块提取请求中的用户账号,并判断用户账号是否存在,若存在则找出用户账号对应手机号并进行步骤S52,若不存在则丢弃该请求并返回请求失败;S52、秘钥管理模块的短信验证模块给用户账号对应的手机号发送短信验证码;S53、短信验证通过后,检查接口服务方的秘钥保存模块是否存在与所述用户账号对应的秘钥文件m1,若存在则直接从接口服务方的本地磁盘中获取秘钥文件m1且随后进入步骤S54,若不存在则秘钥管理模块的秘钥文件生成模块生成秘钥文件m1、秘钥保存模块将生成的秘钥文件m1保存在本地磁盘且随后进入步骤54,秘钥文件m1根据用户请求中所需要的秘钥长度来生成的固定行数列数的矩阵,矩阵的字符由系统随机生成;S54、秘钥管理模块使用发送出去的短信验证码对秘钥文件m1进行aes加秘得到返回结果r1,并将返回结果r1返回给秘钥文件请求方;S6、钥文件请求方通过秘钥文件请求模块获得加秘后的返回结果r1,本地秘钥模块用短信验证时获得的短信验证码和aes解密方法将返回结果r1解密出秘钥文件m1,秘钥保存模块将秘钥文件m1保存到本地磁盘中;S7、本地秘钥模块的aes秘钥生成模块获取当前时间t1,根据秘钥文件m1和t1按照动态秘钥生成规则生成aes秘钥a1;S8、aes加密模块对s2+t1用a1通过AES对称加密方法加密得到验证参数auth;S9、业务请求模块组装新的参数组s2+t1+auth,并用新的参数组s2+t1+auth替换原请求参数组s1向接口服务方发送业务请求;S10、接口服务方的请求接收模块接收网络请求,并判断所述请求是请求秘钥文件还是业务请求,如果是请求秘钥文件则进行步骤S5获取秘钥文件m1,如果是业务请求则进行步骤11服务响应;S11、服务响应:S111、防重放模块提取s2+t1+auth秘钥文件中的t1,并将t1与当前时间比较是否超过5s,如果超过5s,则认为请求超时并且丢弃请求,如果未超过5s则进行步骤S112;S112、防篡改模块提取s2+t1+auth秘钥文件中的auth,通过aes解密得到s2’+t1’,将s2’+t1’与原请求的s2+t1比较,如果不一样,则认为请求被第三方篡改并丢弃请求;如果一样,则进行步骤S113;S113、参数还原模块提取参数中的s2,通过ecc解密将s2解密出原参数组s1,进行步骤S114;S114、业务处理模块,根据请求原参数组s1进行相应的业务处理。优选的是,动态秘钥生成规则:步骤一、设秘钥文件m1是一个矩阵数组X1,矩阵数组X1有m行和n列,m等于秘钥长度,n等于512;步骤二、使用时间t1叠加成一个调取基准数组X2,调取基准数组X2本文档来自技高网...

【技术保护点】
1.一种微服务接口安全调用装置,其特征在于,包括:接口调用方以及接口服务方;接口调用方包括:ecc加密模块,用于提取出请求参数组s1并对数组s1进行ecc加密得到数组s2;本地秘钥模块,其包括秘钥文件请求模块、秘钥文件保存模块以及aes秘钥生成模块,秘钥文件请求模块向接口服务方的秘钥管理模块请求秘钥文件m1并接收接口服务方的秘钥管理模块返回结果r1,本地秘钥模块通过返回结果r1和短信验证码解密得到秘钥文件m1,秘钥文件保存模块将秘钥文件m1保存至本地磁盘,aes秘钥生成模块获取当前时间t1并将秘钥文件m1和t1按照动态秘钥生成规则生成aes秘钥a1;aes加密模块,其用于对s2+t1用a1通过AES对称加密方法加密得到验证参数auth;业务请求模块,用得到的auth组装新的参数组s2+t1+auth,并向接口服务方发送业务请求;接口服务方包括:请求接收模块,接收秘钥文件请求模块发送的秘钥文件m1请求或业务请求模块发送的业务请求,并判断所述请求是请求秘钥文件m1还是业务请求,如果是请求秘钥文件则进入秘钥管理模块,如果是业务请求则进入防重放模块;秘钥管理模块,其包括:用户验证模块、短信验证模块、秘钥文件生成模块以及秘钥文件保存模块,用户验证模块用于提取请求中的用户账号并判断用户账号是否存在,短信验证模块用于向用户账号对应的手机号发送验证短信并验证短信验证码是否正确;秘钥文件生成模块用于生成用户对应的秘钥文件m1,秘钥文件m1是根据用户请求中所需要的秘钥长度来生成的固定行数列数的矩阵,矩阵的字符由系统随机生成;秘钥文件保存模块用于保存用户账号以及用户账号对应的秘钥文件m1;防重放模块,提取业务请求参数组s2+t1+auth中的时间参数t1,并将t1与当前时间比较是否超过指定值(比如5s),当当前时间减去t1小于等于5s时,进入防篡改模块,当当前时间减去t1大于5s时摒弃请求,以拦截恶意重复请求;防篡改模块,提取业务请求参数组s2+t1+auth中的验证参数auth,通过aes解密得到s2’+t1’,并判断s2’+t1’是否与原请求的s2+t1一样,如果不一样则原参数被篡改且验证不通过,如果一样,进入参数还原模块;参数还原模块,提取业务请求中参数组s2+t1+auth中的参数s2,通过ecc解密将s2解密得到原参数组s1,并进入业务处理模块;业务处理模块,提取参数组s1的所有参数并进行对应的业务处理。...

【技术特征摘要】
1.一种微服务接口安全调用装置,其特征在于,包括:接口调用方以及接口服务方;接口调用方包括:ecc加密模块,用于提取出请求参数组s1并对数组s1进行ecc加密得到数组s2;本地秘钥模块,其包括秘钥文件请求模块、秘钥文件保存模块以及aes秘钥生成模块,秘钥文件请求模块向接口服务方的秘钥管理模块请求秘钥文件m1并接收接口服务方的秘钥管理模块返回结果r1,本地秘钥模块通过返回结果r1和短信验证码解密得到秘钥文件m1,秘钥文件保存模块将秘钥文件m1保存至本地磁盘,aes秘钥生成模块获取当前时间t1并将秘钥文件m1和t1按照动态秘钥生成规则生成aes秘钥a1;aes加密模块,其用于对s2+t1用a1通过AES对称加密方法加密得到验证参数auth;业务请求模块,用得到的auth组装新的参数组s2+t1+auth,并向接口服务方发送业务请求;接口服务方包括:请求接收模块,接收秘钥文件请求模块发送的秘钥文件m1请求或业务请求模块发送的业务请求,并判断所述请求是请求秘钥文件m1还是业务请求,如果是请求秘钥文件则进入秘钥管理模块,如果是业务请求则进入防重放模块;秘钥管理模块,其包括:用户验证模块、短信验证模块、秘钥文件生成模块以及秘钥文件保存模块,用户验证模块用于提取请求中的用户账号并判断用户账号是否存在,短信验证模块用于向用户账号对应的手机号发送验证短信并验证短信验证码是否正确;秘钥文件生成模块用于生成用户对应的秘钥文件m1,秘钥文件m1是根据用户请求中所需要的秘钥长度来生成的固定行数列数的矩阵,矩阵的字符由系统随机生成;秘钥文件保存模块用于保存用户账号以及用户账号对应的秘钥文件m1;防重放模块,提取业务请求参数组s2+t1+auth中的时间参数t1,并将t1与当前时间比较是否超过指定值(比如5s),当当前时间减去t1小于等于5s时,进入防篡改模块,当当前时间减去t1大于5s时摒弃请求,以拦截恶意重复请求;防篡改模块,提取业务请求参数组s2+t1+auth中的验证参数auth,通过aes解密得到s2’+t1’,并判断s2’+t1’是否与原请求的s2+t1一样,如果不一样则原参数被篡改且验证不通过,如果一样,进入参数还原模块;参数还原模块,提取业务请求中参数组s2+t1+auth中的参数s2,通过ecc解密将s2解密得到原参数组s1,并进入业务处理模块;业务处理模块,提取参数组s1的所有参数并进行对应的业务处理。2.一种基于微服务接口安全调用装置的加密方法,其特征在于,包括以下步骤:S1、ecc加密模块提取出请求参数组s1,对数组s1进行ecc加密得到数组s2;S2、aes加密模块拿到数组s2,检查本地是否有秘钥文件,如果有,进行步骤S5;如果没有,进行步骤S3;S3、本地秘钥模块的秘钥文件请求模块向接口服务方发起获取秘钥文件m1请求;S4、接口服务方的请求接收模块接收网络请求,判断所述请求是请求秘钥文件还是业务请求,如果是请求秘钥文件则进行步骤S5获取秘钥文件m1,如果是业务请求则进行步骤11;S5、获取秘钥文件m1:S51、...

【专利技术属性】
技术研发人员:高英谢杰龙信文曾行
申请(专利权)人:华南理工大学
类型:发明
国别省市:广东,44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1