CN108289102A - 一种微服务接口安全调用装置及基于其的加密方法 - Google Patents

一种微服务接口安全调用装置及基于其的加密方法 Download PDF

Info

Publication number
CN108289102A
CN108289102A CN201810079061.XA CN201810079061A CN108289102A CN 108289102 A CN108289102 A CN 108289102A CN 201810079061 A CN201810079061 A CN 201810079061A CN 108289102 A CN108289102 A CN 108289102A
Authority
CN
China
Prior art keywords
secret key
module
request
key file
service
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201810079061.XA
Other languages
English (en)
Other versions
CN108289102B (zh
Inventor
高英
谢杰
龙信文
曾行
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
South China University of Technology SCUT
Original Assignee
South China University of Technology SCUT
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by South China University of Technology SCUT filed Critical South China University of Technology SCUT
Priority to CN201810079061.XA priority Critical patent/CN108289102B/zh
Publication of CN108289102A publication Critical patent/CN108289102A/zh
Application granted granted Critical
Publication of CN108289102B publication Critical patent/CN108289102B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • H04L63/045Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload wherein the sending and receiving network entities apply hybrid encryption, i.e. combination of symmetric and asymmetric encryption
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/06Network architectures or network communication protocols for network security for supporting key management in a packet data network
    • H04L63/068Network architectures or network communication protocols for network security for supporting key management in a packet data network using time-dependent keys, e.g. periodically changing keys
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • H04L63/123Applying verification of the received information received data contents, e.g. message integrity
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/18Network architectures or network communication protocols for network security using different networks or channels, e.g. using out of band channels

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computing Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Storage Device Security (AREA)

Abstract

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

Description

一种微服务接口安全调用装置及基于其的加密方法
技术领域
本发明涉及微服务系统,具体涉及一种微服务接口安全调用装置及基于其的加密方法。
背景技术
现在的软件开发中经常用到接口,尤其是基于微服务架构的软件开发,数据交互全是用的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内元素数量等于m;
步骤三、按照调取基准数组X2内各个元素值从秘钥文件m1中依次取出各个秘钥元素,所有秘钥元素依次组成数组形的秘钥a1:设秘钥a1的第i个秘钥元素为a1i,调取基准数组X2中的第i个元素值等于X2i,那么a1i等于矩阵数组X1中第i行第2的X2i次方列的值。
相比于现有技术,本发明具有如下有益效果:
1)通过短信验证的方式实现对秘钥文件m1的获取及加密,由于短信验证码是动态生成的并通过手机发送,第三方是无法得知的,进而提高了秘钥文件m1传输过程中的安全性,避免了因传输过程中秘钥文件m1裸露而被抓取,提高了安全性;
2)由于每次时间是动态的,通过动态秘钥生成规则生成秘钥a1,使得秘钥a1与m1相关又与动态的时间t1相关,使得a1在规则中变化,就算攻击者幸运的破解或者通过其他手段得到了加密秘钥a1,下一刻a1就变了,进而又能提高秘钥a1的准确性又能使得服务方接口能在知晓规则的前提下将s2’+t1’解密出来,s2’+t1’解密出来为防篡改提供了判断依据,进一步提高了安全性,且可行性高;
3)对参数组s1的加密采用的是ecc加密,ecc加密是非对称加密方法,对称加密与非对称加密相结合,接口的调用更加安全。
本发明的其它优点、目标和特征将部分通过下面的说明体现,部分还将通过对本发明的研究和实践而为本领域的技术人员所理解。
附图说明
图1为微服务接口安全调用装置的电路框图;
图2为接口调用方的工作流程图;
图3为接口服务方的工作流程图。
具体实施方式
为了使本发明实现的技术手段、创作特征、达成目的与作用更加清楚及易于了解,下面结合附图和具体实施方式对本发明作进一步阐述:
如图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以及图3所示,本实施例还提供了一种基于微服务接口安全调用装置的加密方法,包括以下步骤:
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(s2+t1+auth秘钥文件在传送中,s2与t1之间有分隔符分隔,在t1与auth之间有分隔符分隔,那么非常容易提取到t1,此步骤保证请求的实时性,避免在长时间过程中有第三方软件将s2+t1+auth秘钥文件篡改,提高了安全性),并将t1与当前时间比较是否超过5s,如果超过5s,则认为请求超时则丢弃请求,如果未超过5s则进行步骤S112;S112、防篡改模块提取s2+t1+auth秘钥文件中的auth,通过aes解密得到s2’+t1’,将s2’+t1’与原请求的s2+t1比较,如果不一样,则认为请求被第三方篡改并丢弃请求(此步骤中,由于在服务方接口的数据库内存储有对应每个用户账号的秘钥文件m1,同时也知道t1,那么就可以通过动态秘钥生成规则服务方接口自动计算出a1,然后通过aes解密方法(此为现有技术)采用计算出的a1将auth解密成s2’+t1’,在支付存储系统中,如果一旦发生串改现象,那么会对客户以及运营商带来麻烦,虚拟货币的真实度得到改变,那么就会造成交易不平衡的问题,因此此步骤尤其重要);如果一样,则进行步骤S113;S113、参数还原模块提取参数中的s2,通过ecc解密(此为现有技术)将s2解密出原参数组s1,则进行步骤步骤S114;S114、业务处理模块,根据请求原参数组s1进行相应的业务处理(例如:资金存入等)。
现有技术中,微服务接口调用方需要调用接口用用户账号密码登录。接口调用链接例如:http://api.demo.com/user/login。参数:username=1234password=123456分别为用户名和密码,由于示例的原因,这里用户名和密码假设的特别简单。
本申请提供实例1:用户登录接口遵循restful风格,发起的原始调用如下:
http://api.demo.com/user/login?username=1234&password=123456
本申请提供实例2:
为了设计运行可靠且安全性能高的动态秘钥生成规则,动态秘钥生成规则:
步骤一、设秘钥文件m1是一个矩阵数组X1,矩阵数组X1有m行和n列,m等于秘钥长度,n等于10;
步骤二、使用时间t1叠加成一个调取基准数组X2,调取基准数组X2内元素数量等于m;
步骤三、按照调取基准数组X2内各个元素值从秘钥文件m1中依次取出各个秘钥元素,所有秘钥元素依次组成数组形的秘钥a1:设秘钥a1的第i个秘钥元素为a1i,调取基准数组X2中的第i个元素值等于X2i,那么a1i等于矩阵数组X1中第i行第X2i+1列的值。
例如:矩阵数组
(即是:m=18,n=10),t1=20180116104106(表示2018年01月16日10时41分06秒),由于m代表了加密时需要的秘钥长度(预先设定好了的,例如一般支付密码可以按照客户需要的长度设定密码,那么一般支付密码有一定的最小长度,本实施例支付密码最小长度为14位,对应每个用户账号都有自己的加密),那么就需要形成一个位数与m相等的X2,则用t1叠加形成X2=201801161041062018,那么a1就通过以下规则获得:
X2的第1个为2,那么就选取矩阵数组X1的第1行第3列的3为a11;
X2的第2个为0,那么就选取矩阵数组X1的第2行第1列的2为a12;
X2的第3个为1,那么就选取矩阵数组X1的第2行第2列的1为a13;
X2的第4个为8,那么就选取矩阵数组X1的第4行第9列的1为a14;
X2的第5个为0,那么就选取矩阵数组X1的第5行第1列的5为a15;
X2的第6个为1,那么就选取矩阵数组X1的第6行第2列的4为a16;
.
.
.
通过上述方法就能获得a1。
最后说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或者等同替换,而不脱离本发明技术方案的宗旨和范围,其均应涵盖在本发明的权利要求范围当中。

Claims (3)

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、秘钥管理模块的用户验证模块提取请求中的用户账号,并判断用户账号是否存在,若存在则找出用户账号对应手机号并进行步骤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进行相应的业务处理。
3.根据权利要求2所述的基于微服务接口安全调用装置的加密方法,其特征在于,动态秘钥生成规则:
步骤一、设秘钥文件m1是一个矩阵数组X1,矩阵数组X1有m行和n列,m等于秘钥长度,n等于512;
步骤二、使用时间t1叠加成一个调取基准数组X2,调取基准数组X2内元素数量等于m;
步骤三、按照调取基准数组X2内各个元素值从秘钥文件m1中依次取出各个秘钥元素,所有秘钥元素依次组成数组形的秘钥a1:设秘钥a1的第i个秘钥元素为a1i,调取基准数组X2中的第i个元素值等于X2i,那么a1i等于矩阵数组X1中第i行第2的X2i次方列的值。
CN201810079061.XA 2018-01-26 2018-01-26 一种微服务接口安全调用装置 Active CN108289102B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810079061.XA CN108289102B (zh) 2018-01-26 2018-01-26 一种微服务接口安全调用装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810079061.XA CN108289102B (zh) 2018-01-26 2018-01-26 一种微服务接口安全调用装置

Publications (2)

Publication Number Publication Date
CN108289102A true CN108289102A (zh) 2018-07-17
CN108289102B CN108289102B (zh) 2020-03-13

Family

ID=62835807

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810079061.XA Active CN108289102B (zh) 2018-01-26 2018-01-26 一种微服务接口安全调用装置

Country Status (1)

Country Link
CN (1) CN108289102B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111294338A (zh) * 2020-01-16 2020-06-16 智业互联(厦门)健康科技有限公司 非法请求拦截方法及系统

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102006306A (zh) * 2010-12-08 2011-04-06 广东高新兴通信股份有限公司 一种web服务的安全认证方法
CN102100031A (zh) * 2008-07-16 2011-06-15 三星电子株式会社 用于在用户接口中提供安全服务的设备及方法
CN102469091A (zh) * 2010-11-18 2012-05-23 金蝶软件(中国)有限公司 一种页面验证码处理的方法、装置及终端
CN106302497A (zh) * 2016-08-25 2017-01-04 广州唯品会信息科技有限公司 微服务的权限控制方法及装置
US20170093651A1 (en) * 2015-09-30 2017-03-30 Bank Of America Corporation Channel accessible single function micro service data collection process for light analytics
CN106656630A (zh) * 2017-01-13 2017-05-10 北京中电普华信息技术有限公司 一种电力营销业务应用系统及其构建方法、平台

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102100031A (zh) * 2008-07-16 2011-06-15 三星电子株式会社 用于在用户接口中提供安全服务的设备及方法
CN102469091A (zh) * 2010-11-18 2012-05-23 金蝶软件(中国)有限公司 一种页面验证码处理的方法、装置及终端
CN102006306A (zh) * 2010-12-08 2011-04-06 广东高新兴通信股份有限公司 一种web服务的安全认证方法
US20170093651A1 (en) * 2015-09-30 2017-03-30 Bank Of America Corporation Channel accessible single function micro service data collection process for light analytics
CN106302497A (zh) * 2016-08-25 2017-01-04 广州唯品会信息科技有限公司 微服务的权限控制方法及装置
CN106656630A (zh) * 2017-01-13 2017-05-10 北京中电普华信息技术有限公司 一种电力营销业务应用系统及其构建方法、平台

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
DUO LU ET AL: "A Secure Microservice Framework for IoT", 《2017 IEEE SYMPOSIUM ON SERVICE-ORIENTED SYSTEM ENGINEERING》 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111294338A (zh) * 2020-01-16 2020-06-16 智业互联(厦门)健康科技有限公司 非法请求拦截方法及系统
CN111294338B (zh) * 2020-01-16 2022-05-10 智业互联(厦门)健康科技有限公司 非法请求拦截方法及系统

Also Published As

Publication number Publication date
CN108289102B (zh) 2020-03-13

Similar Documents

Publication Publication Date Title
CN108989346B (zh) 基于账号隐匿的第三方有效身份托管敏捷认证访问方法
CN106304074B (zh) 面向移动用户的身份验证方法和系统
US8528076B2 (en) Method and apparatus for authenticating online transactions using a browser and a secure channel with an authentication server
CN109766979B (zh) 一种二维码的生成方法、验证方法及其装置
CN102752115B (zh) 挑战码生成方法及装置、动态口令认证方法及系统
CN107154852A (zh) 一种面向区块链应用的移动端身份验证方法
CN106656907A (zh) 用于认证的方法、装置、终端设备及系统
Hammood et al. A review of user authentication model for online banking system based on mobile IMEI number
EP2446392A1 (en) Authentication method and system
CN102271035A (zh) 传输密码的方法和装置
US11403633B2 (en) Method for sending digital information
US20180130056A1 (en) Method and system for transaction security
CN105447715A (zh) 用于与第三方合作的防盗刷电子优惠券的方法和装置
KR20100038990A (ko) 네트워크 인증 시스템의 보안 인증 방법 및 그 장치
CN108965324A (zh) 一种短信验证码防刷方法、终端、服务器、设备及介质
Rao et al. Authentication using mobile phone as a security token
CN111510442A (zh) 一种用户验证方法、装置、电子设备及存储介质
CN106130864B (zh) 一种基于vpn的私有云接入方法和装置
CN107888548A (zh) 一种信息验证方法及装置
US10051468B2 (en) Process for authenticating an identity of a user
CN104901967A (zh) 信任设备的注册方法
CN107995616B (zh) 用户行为数据的处理方法以及装置
CN108289102A (zh) 一种微服务接口安全调用装置及基于其的加密方法
CN105553983B (zh) 一种网页数据保护方法
CN110602142B (zh) 一种基于密码链的后台认证方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant