CN106850231A - 一种保护接口安全的方法、服务端及系统、一种客户端 - Google Patents
一种保护接口安全的方法、服务端及系统、一种客户端 Download PDFInfo
- Publication number
- CN106850231A CN106850231A CN201710095554.8A CN201710095554A CN106850231A CN 106850231 A CN106850231 A CN 106850231A CN 201710095554 A CN201710095554 A CN 201710095554A CN 106850231 A CN106850231 A CN 106850231A
- Authority
- CN
- China
- Prior art keywords
- digest value
- client
- call parameters
- authentication
- unit
- 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.)
- Pending
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3247—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/10—Network architectures or network communication protocols for network security for controlling access to devices or network resources
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/10—Network architectures or network communication protocols for network security for controlling access to devices or network resources
- H04L63/108—Network architectures or network communication protocols for network security for controlling access to devices or network resources when the policy decisions are valid for a limited amount of time
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3236—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
- H04L9/3239—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Storage Device Security (AREA)
Abstract
本发明提供了一种保护接口安全的方法、服务端及系统、一种客户端,通过接收外部客户端发送的接口调用请求,利用接口调用请求中的调用参数计算认证摘要值,而客户端发送的接口调用请求中包括有在客户端计算的签名摘要值,于是通过判断客户端发送的接口调用请求中的签名摘要值和计算获得的认证摘要值是否相同就可以确定出外部客户端的接口调用请求是否合法,只有当签名摘要值和认证摘要值相同时才能够确定外部客户端的接口调用请求合法。由于在用户每次对用户接口进行调用时,避免了提供用户名、密码等一些认证信息,从而不会造成用户认证信息的暴露,也不会造成认证信息的被窃取,从而能够提高用户接口的安全性。
Description
技术领域
本发明涉及计算机技术领域,特别涉及一种保护接口安全的方法、服务端及系统、一种客户端。
背景技术
UI(User Interface,用户接口)是系统和用户之间进行交互的媒介。UI用于将信息传递给用户,并提供用户可以识别和接受的形式。在开放性用户接口的设计中,避免不了的就是安全性问题,因为大多数用户接口涉及到用户的个人信息以及一些敏感的数据,所以对这些用户需要进行身份的认证。
现在进行身份的认证的方法,大部分需要用户提供用户名、密码等一些认证信息。通过判断用户提供的认证信息是否正确,只要提供正确认证信息的用户才能够被授权对用户接口进行调用,从而确保用户接口的安全性。
但是,在用户每次对用户接口进行调用时,均要提供认证信息,从而需要用户频繁的提供认证信息,使的用户的认证信息频繁被暴露,造成认证信息的被窃取。于是,降低了用户接口的安全性。
发明内容
本发明实施例提供了一种保护接口安全的方法、服务端及系统、一种客户端,能够提高用户接口的安全性。
第一方面,本发明实施例提供了一种保护接口安全的方法,该方法保护接口安全的包括:
接收外部客户端发送的接口调用请求,所述接口调用请求中包括调用参数和签名摘要值;
根据所述调用参数,计算出认证摘要值;
判断所述签名摘要值和所述认证摘要值是否相同,当所述签名摘要值和所述认证摘要值相同时,确定所述外部客户端的接口调用请求合法。
优选地,所述根据所述调用参数,计算出认证摘要值,包括:
根据所述调用参数中的每个参数名对应的参数值,对所述参数名进行位置排序;
根据所述位置排序,将所述调用参数中的每个所述参数名和每个所述参数名对应的参数值连接形成初始拼装字符;
通过摘要算法计算所述初始拼装字符的摘要值,获得所述认证摘要值。
优选地,所述通过摘要算法计算所述初始拼装字符的摘要值,获得所述认证摘要值,包括:
将预先确定的认证密钥与所述初始拼装字符连接形成认证拼装字符;
对所述认证拼装字符进行32位消息摘要算法第五版MD5加密,获得所述认证摘要值。
优选地,在所述接收外部客户端发送的接口调用请求之后,在所述根据所述调用参数,计算出认证摘要值之前,进一步包括:
确定接收到所述接口调用请求时的接收时间戳;
确定所述调用参数中的调用时间戳;
判断所述接收时间戳和所述调用时间戳的差值是否在预设的有效时间范围内,当所述差值在所述预设的有效时间范围内时,执行所述根据所述调用参数,计算出认证摘要值。
第二方面,本发明实施例提供了一种服务端,该服务端包括:接收单元、服务计算单元和判断单元,其中,
所述接收单元,用于接收外部客户端发送的接口调用请求,所述接口调用请求中包括调用参数和签名摘要值;
所述服务计算单元,用于根据所述接收单元接收的所述调用参数,计算出认证摘要值;
所述判断单元,用于判断所述接收单元接收的所述签名摘要值和所述服务计算单元计算的所述认证摘要值是否相同,当所述签名摘要值和所述认证摘要值相同时,确定所述外部客户端的接口调用请求合法。
优选地,所述服务计算单元,包括:第一排序子单元、拼装子单元和计算子单元,其中,
所述排序子单元,用于根据所述调用参数中的每个参数名对应的参数值,对所述参数名进行位置排序;
所述第一拼装子单元,用于根据所述排序子单元的所述位置排序,将所述调用参数中的每个所述参数名和每个所述参数名对应的参数值连接形成初始拼装字符;
所述第一计算子单元,用于通过摘要算法计算所述第一拼装子单元形成的所述初始拼装字符的摘要值,获得所述认证摘要值。
优选地,所述第一计算子单元,包括:连接子单元和加密子单元,其中
所述连接子单元,用于将预先确定的认证密钥与所述第一拼装子单元形成的所述初始拼装字符连接形成认证拼装字符;
所述加密子单元,用于对所述连接子单元形成的所述认证拼装字符进行32位消息摘要算法第五版MD5加密,获得所述认证摘要值。
优选地,该服务端进一步包括:第一确定单元、第二确定单元和执行单元,其中,
所述第一确定单元,用于确定所述接收单元接收到所述接口调用请求时的接收时间戳;
所述第二确定单元,用于确定所述接收单元接收的所述调用参数中的调用时间戳;
所述执行单元,用于判断所述第一确定单元确定的所述接收时间戳和所述第二确定单元确定的所述调用时间戳的差值是否在预设的有效时间范围内,当所述差值在所述预设的有效时间范围内时,执行所述服务计算单元。
第三方面,本发明实施例提供了一种客户端,该客户端包括:客户计算单元和发送单元,其中,
所述客户计算单元,用于根据调用参数,计算出签名摘要值;
所述发送单元,用于发送接口调用请求,所述接口调用请求中包括调用参数和签名摘要值。
优选地,所述客户计算单元,包括:第二排序子单元、第二拼接子单元和第二计算子单元,其中,
所述第二排序子单元,用于根据所述调用参数中的每个参数名对应的参数值,按照服务端的位置排序原则,对所述参数名进行位置排序;
所述第二拼接子单元,用于根据所述位置排序,将所述调用参数中的每个所述参数名和每个所述参数名对应的参数值连接形成初始拼装字符;
所述第二计算子单元,用于按照所述外部服务端中预先确定的认证密钥与所述初始拼装字符的连接方式,将预先确定的认证密钥与所述第二拼接子单元形成的初始拼装字符连接形成签名拼装字符;以及对所述签名拼装字符进行32位消息摘要算法第五版MD5加密,获得所述签名摘要值。
第四方面,本发明实施例提供了一种保护接口安全的系统,该保护接口安全的系统包括:第二方面中提供的任一所述服务端和第三方面中提供的任一所述客户端。
本发明实施例提供了一种保护接口安全的方法、服务端及系统、一种客户端,通过接收外部客户端发送的接口调用请求,利用接口调用请求中的调用参数计算认证摘要值,而客户端发送的接口调用请求中包括有在客户端计算的签名摘要值,于是通过判断客户端发送的接口调用请求中的签名摘要值和计算获得的认证摘要值是否相同就可以确定出外部客户端的接口调用请求是否合法,只有当签名摘要值和认证摘要值相同时才能够确定外部客户端的接口调用请求合法。由于在用户每次对用户接口进行调用时,避免了提供用户名、密码等一些认证信息,从而不会造成用户认证信息的暴露,也不会造成认证信息的被窃取。而是直接根据调用参数计算认证摘要值,通过判断签名摘要值和认证摘要值是否相同,来确定出外部客户端的接口调用请求是否合法,从而能够提高用户接口的安全性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明一个实施例提供的一种保护接口安全的方法的流程图;
图2是本发明一个实施例提供的另一种保护接口安全的方法的流程图;
图3是本发明一个实施例提供的一种服务端的结构示意图;
图4是本发明一个实施例提供的另一种服务端的结构示意图;
图5是本发明一个实施例提供的一种客户端的结构示意图;
图6是本发明一个实施例提供的一种保护接口安全的系统的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例,基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
如图1所示,本发明实施例提供了一种保护接口安全的方法,该方法可以包括以下步骤:
步骤101:接收外部客户端发送的接口调用请求,所述接口调用请求中包括调用参数和签名摘要值。
步骤102:根据所述调用参数,计算出认证摘要值。
步骤103:判断所述签名摘要值和所述认证摘要值是否相同,当所述签名摘要值和所述认证摘要值相同时,确定所述外部客户端的接口调用请求合法。
在上述实施例中,通过接收外部客户端发送的接口调用请求,通过接口调用请求中的调用参数计算认证摘要值,而客户端发送的接口调用请求中包括有在客户端计算的签名摘要值,于是通过判断客户端发送的接口调用请求中的签名摘要值和计算获得的认证摘要值是否相同就可以确定出外部客户端的接口调用请求是否合法,只有当签名摘要值和认证摘要值相同时才能够确定外部客户端的接口调用请求合法。由于在用户每次对用户接口进行调用时,避免了提供用户名、密码等一些认证信息,从而不会造成用户认证信息的暴露,也不会造成认证信息的被窃取。而是直接根据调用参数计算认证摘要值,通过判断签名摘要值和认证摘要值是否相同,来确定出外部客户端的接口调用请求是否合法,从而能够提高用户接口的安全性。
值得说明的是,接口可以是API(Application Programming Interface,应用程序编程接口)。
为了能够获得用户需要的认证摘要值,在本发明一个实施例中,所述根据所述调用参数,计算出认证摘要值,包括:
根据所述调用参数中的每个参数名对应的参数值,对所述参数名进行位置排序;
根据所述位置排序,将所述调用参数中的每个所述参数名和每个所述参数名对应的参数值连接形成初始拼装字符;
通过摘要算法计算所述初始拼装字符的摘要值,获得所述认证摘要值。
在该实施例中,每个参数名就有一个与之对应的参数值。而调用参数中可以只包括一个参数名,也可以包括多个参数名。在调用参数中包括多个参数名时,可以通过参数值的大小对参数名进行排序。参数值的大小关系可以基于ASCII(American Standard Codefor Information Interchange,美国信息交换标准代码)排序规则进行判断。而参数名的排序原则可以按照参数值的大小进行升序排列,也可以按照参数值的大小进行降序排列。例如,在调用参数中有a=2,b=5,c=3三个参数,基于ASCII排序规则,得知参数值5>2,5>3,3>2,若是按照参数值的大小进行升序排列,则排序为a=2,c=3,b=5,此时,得到的初始拼装字符就是a2c3b5。若是按照参数值的大小进行降序排列,则排序为b=5,c=3,a=2。此时,得到的初始拼装字符就是b5c3a2。不同的拼装字符通过摘要算法可以获得不同的认证摘要值,因此用户可以通过改变参数名的排列顺序获得需要的认证摘要值,从而能够保证接口的安全性。
为了确保接口的安全性,在本发明一个实施例中,所述通过摘要算法计算所述初始拼装字符的摘要值,获得所述认证摘要值,包括:
将预先确定的认证密钥与所述初始拼装字符连接形成认证拼装字符;
对所述认证拼装字符进行32位MD5加密,获得所述认证摘要值。
在该实施例中,在对初始拼装字符进行摘要值计算时,首先需要将认证密钥连接到初始拼装字符中。在连接过程中,可以将认证密钥连接到初始拼装字符的头部,也可以将认证密钥连接到初始拼装字符的尾部,还可以将认证密钥同时连接到初始拼装字符的头部和尾部,连接方式用户可以自行设定。例如,初始拼装字符为a2c3b5,假设认证密钥为test,若将认证密钥连接到初始拼装字符的头部,则认证拼装字符为testa2c3b5;若将认证密钥连接到初始拼装字符的尾部,则认证拼装字符为a2c3b5test;若将认证密钥同时连接到初始拼装字符的头部和尾部,则认证拼装字符为testa2c3b5test。由于MD5加密算法具有以下特点:1、压缩性:任意长度的数据,算出的MD5值长度都是固定的;2、容易计算:从原数据计算出MD5值很容易;3、抗修改性:对原数据进行任何改动,哪怕只修改1个字节,所得到的MD5值都有很大区别;4、强抗碰撞:已知原数据和其MD5值,想找到一个具有相同MD5值的数据(即伪造数据)是非常困难的。因此,在本发明实施例中采用MD5加密算法对认证拼装字符进行摘要值计算。
为了方便判断认证摘要值与签名摘要值是否相同,在利用MD5加密算法对认证拼装字符进行摘要值计算得到认证摘要值后,将认证摘要值中的小写字母转换成大写字母。例如,若计算出的认证摘要值为c5f3eb5d7dc2748aed89e90af00081e6,则将认证摘要值中的小写字母转换成大写字母后为:C5F3EB5D7DC2748AED89E90AF00081E6。
值得说明的是,在本发明中还可以采用其他加密算法获得认证摘要值。例如:CRC(Cyclic Redundancy Check,循环冗余校验)、SHA(Secure Hash Algorithm,安全哈希算法)、RIPEMD(RACE Integrity Primitives Evaluation Message Digest,RACE原始完整性校验消息摘要)等。
为了防范伪装攻击、篡改攻击、重放攻击,在本发明一个实施例中,在所述接收外部客户端发送的接口调用请求之后,在所述根据所述调用参数,计算出认证摘要值之前,进一步包括:
确定接收到所述接口调用请求时的接收时间戳;
确定所述调用参数中的调用时间戳;
判断所述接收时间戳和所述调用时间戳的差值是否在预设的有效时间范围内,当所述差值在所述预设的有效时间范围内时,执行所述根据所述调用参数,计算出认证摘要值。
在该实施例中,预设的有效时间范围用户可以自行设定,可以是10分钟,5分钟,20秒等。当接收时间戳和调用时间戳的差值不在预设的有效时间范围内时,外部客户端发送的接口调用请求失效,则不能对接口进行调用。客户端使用的时间为准确的网络同步时间。
值得说明的是,调用参数中的调用时间戳也是调用参数中的一个参数名。于是在对参数名进行位置排序,以及将参数名和参数名对应的参数值连接形成初始拼装字符时,需要将时间戳加入。例如,在调用参数中c=3,b=2,a=1,_timestamp=12345678,若按照参数值的大小进行升序排列,则排序为a=1,b=2,c=3,_timestamp=12345678,则初始拼装字符为a1b2c3_timestamp12345678。
如图2所示,本发明一个实施例中提供了一种保护接口安全的方法,该方法可以包括以下步骤:
步骤201:接收外部客户端发送的接口调用请求,接口调用请求中包括调用参数和签名摘要值。
在该步骤中,客户端需要调用接口时,就需要发送接口调用请求。
步骤202:确定接收到接口调用请求时的接收时间戳。
在该步骤中,使用的准确的网络同步时间。
步骤203:确定调用参数中的调用时间戳。
在该步骤中,接口调用求中包括有多个调用参数,调用时间戳只是其中的一个参数。
步骤204:判断接收时间戳和调用时间戳的差值是否在预设的有效时间范围内,若是,执行步骤205,否则,执行步骤210。
在该步骤中,由于存在对接口的伪装攻击、篡改攻击、重放攻击等恶意行为,所以需要判断调用时间戳是否有效。
步骤205:根据所调用参数中的每个参数名对应的参数值,对参数名进行升序排序。
在该步骤中,按照参数值的大小进行升序排列。例如:在调用参数中c=3,b=2,a=1,_timestamp=12345678,则排序后为a=1,b=2,c=3,_timestamp=12345678。
步骤206:将调用参数中的每个参数名和每个参数名对应的参数值连接形成初始拼装字符。
在该步骤中,形成的初始拼装字符为a1b2c3_timestamp12345678。
步骤207:将预先确定的认证密钥同时连接到初始拼装字符的头部和尾部形成认证拼装字符。
在该步骤中,预先确定的认证密钥为test,则形成的认证拼装字符为testa1b2c3_timestamp12345678test。
步骤208:对认证拼装字符进行32位MD5加密,获得认证摘要值。
在该步骤中,c5f3eb5d7dc2748aed89e90af00081e6为计算获得的认证摘要值。C5F3EB5D7DC2748AED89E90AF00081E6,是将小写字母转换成大写字母后的认证摘要值。将小写字母转换成大写字母方便签名摘要值和认证摘要值的对比。
步骤209:判断所签名摘要值和认证摘要值是否相同,若是,确定外部客户端的接口调用请求合法;否则,执行步骤210。
步骤210:拒绝外部客户端的接口调用请求。
如图3所示,本发明实施例提供了一种服务端,该服务端可以包括:接收单元301、服务计算单元302和判断单元303,其中,
所述接收单元301,用于接收外部客户端发送的接口调用请求,所述接口调用请求中包括调用参数和签名摘要值;
所述服务计算单元302,用于根据所述接收单元301接收的所述调用参数,计算出认证摘要值;
所述判断单元303,用于判断所述接收单元301接收的所述签名摘要值和所述服务计算单元302计算的所述认证摘要值是否相同,当所述签名摘要值和所述认证摘要值相同时,确定所述外部客户端的接口调用请求合法。
为了能够获得用户需要的认证摘要值,在本发明一个实施例中,所述服务计算单元,包括:第一排序子单元、拼装子单元和计算子单元,其中,
所述排序子单元,用于根据所述调用参数中的每个参数名对应的参数值,对所述参数名进行位置排序;
所述第一拼装子单元,用于根据所述排序子单元的所述位置排序,将所述调用参数中的每个所述参数名和每个所述参数名对应的参数值连接形成初始拼装字符;
所述第一计算子单元,用于通过摘要算法计算所述第一拼装子单元形成的所述初始拼装字符的摘要值,获得所述认证摘要值。
为了确保接口的安全性,在本发明一个实施例中,所述第一计算子单元,包括:连接子单元和加密子单元,其中
所述连接子单元,用于将预先确定的认证密钥与所述第一拼装子单元形成的所述初始拼装字符连接形成认证拼装字符;
所述加密子单元,用于对所述连接子单元形成的所述认证拼装字符进行32位消息摘要算法第五版MD5加密,获得所述认证摘要值;
如图4所示,为了防范伪装攻击、篡改攻击、重放攻击,在本发明一个实施例中,该服务端可以进一步包括:第一确定单元401、第二确定单元402和执行单元403,其中,
所述第一确定单元401,用于确定所述接收单元301接收到所述接口调用请求时的接收时间戳;
所述第二确定单元402,用于确定所述接收单元301接收的所述调用参数中的调用时间戳;
所述执行单元403,用于判断所述第一确定单元401确定的所述接收时间戳和所述第二确定单元402确定的所述调用时间戳的差值是否在预设的有效时间范围内,当所述差值在所述预设的有效时间范围内时,执行所述服务计算单元302。
上述服务端内的各单元之间的信息交互、执行过程等内容,由于与本发明方法实施例基于同一构思,具体内容可参见本发明方法实施例中的叙述,此处不再赘述。
如图5所示,本发明实施例提供了一种客户端,该客户端可以包括:客户计算单元501和发送单元502,其中,
所述客户计算单元501,用于根据调用参数,计算出签名摘要值;
所述发送单元502,用于发送接口调用请求,所述接口调用请求中包括调用参数和签名摘要值。
在本发明一个实施例中,所述客户计算单元,包括:第二排序子单元、第二拼接子单元和第二计算子单元,其中,
所述第二排序子单元,用于根据所述调用参数中的每个参数名对应的参数值,按照服务端的位置排序原则,对所述参数名进行位置排序;
所述第二拼接子单元,用于根据所述位置排序,将所述调用参数中的每个所述参数名和每个所述参数名对应的参数值连接形成初始拼装字符;
所述第二计算子单元,用于按照所述外部服务端中预先确定的认证密钥与所述初始拼装字符的连接方式,将预先确定的认证密钥与所述第二拼接子单元形成的初始拼装字符连接形成签名拼装字符;以及对所述签名拼装字符进行32位消息摘要算法第五版MD5加密,获得所述签名摘要值。
如图6所示,本发明实施例提供了一种保护接口安全的系统,该保护接口安全的系统可以包括:上述任一实施例所述的服务端601和上述任一实施例所述的客户端602。
值得说明的是,服务端和客户端所使用的时间是准确的网络同步时间。服务端和客户端中参数名的排序原则一致。例如:在服务端参数名的排序原则按照参数值的大小进行升序排列,则在客户端参数名的排序原则也应该按照参数值的大小进行升序排列。服务端和客户端中使用的认证密钥一致。服务端和客户端中认证密钥和初始拼装字符的连接方式一致。例如:在服务端中将认证密钥同时连接到初始拼装字符的头部和尾部,则在客户端也要将认证密钥同时连接到初始拼装字符的头部和尾部。服务端和客户端中使用的摘要算法一致。例如:在服务端使用32位MD5加密,则在客户端同样也使用32位MD5加密。
综上,本发明的各实施例,至少具有如下有益效果:
1、在本发明的实施例中,通过接收外部客户端发送的接口调用请求,利用接口调用请求中的调用参数计算认证摘要值,而客户端发送的接口调用请求中包括有在客户端计算的签名摘要值,于是通过判断客户端发送的接口调用请求中的签名摘要值和计算获得的认证摘要值是否相同就可以确定出外部客户端的接口调用请求是否合法,只有当签名摘要值和认证摘要值相同时才能够确定外部客户端的接口调用请求合法。由于在用户每次对用户接口进行调用时,避免了提供用户名、密码等一些认证信息,从而不会造成用户认证信息的暴露,也不会造成认证信息的被窃取。而是直接根据调用参数计算认证摘要值,通过判断签名摘要值和认证摘要值是否相同,来确定出外部客户端的接口调用请求是否合法,从而能够提高用户接口的安全性。
2、在本发明的实施例中,根据一定的排序规则,对参数名进行排序,将参数名和参数名对应的参数值连接形成初始拼装字符,通过计算初始拼装字符的摘要值,获得认证摘要值,从而能获得的认证摘要值是特定的,因此能够与签名摘要值进行对比。
3、在本发明的实施例中,通过采用MD5加密,不管认证拼装字符的长度如何,最后获得认证摘要值都是固定的;并且容易计算出认证摘要值,由于MD5加密的抗修改性,使得对原数据进行任何改动,哪怕只修改1个字节,所得到的MD5值都有很大区别,从而达到认证授权的目的。
4、在本发明的实施例中,通过判断接收时间戳和调用时间戳的差值是否在预设的有效时间范围内,能够确定接口调用请求是否有效,从而能够有效的避免伪装攻击、篡改攻击、重放攻击、数据信息泄漏等安全等安全问题。
需要说明的是,在本文中,诸如第一和第二之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个······”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同因素。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储在计算机可读取的存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质中。
最后需要说明的是:以上所述仅为本发明的较佳实施例,仅用于说明本发明的技术方案,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所做的任何修改、等同替换、改进等,均包含在本发明的保护范围内。
Claims (10)
1.一种保护接口安全的方法,其特征在于,包括:
接收外部客户端发送的接口调用请求,所述接口调用请求中包括调用参数和签名摘要值;
根据所述调用参数,计算出认证摘要值;
判断所述签名摘要值和所述认证摘要值是否相同,当所述签名摘要值和所述认证摘要值相同时,确定所述外部客户端的接口调用请求合法。
2.根据权利要求1所述的方法,其特征在于,
所述根据所述调用参数,计算出认证摘要值,包括:
根据所述调用参数中的每个参数名对应的参数值,对所述参数名进行位置排序;
根据所述位置排序,将所述调用参数中的每个所述参数名和每个所述参数名对应的参数值连接形成初始拼装字符;
通过摘要算法计算所述初始拼装字符的摘要值,获得所述认证摘要值。
3.根据权利要求2所述的方法,其特征在于,
所述通过摘要算法计算所述初始拼装字符的摘要值,获得所述认证摘要值,包括:
将预先确定的认证密钥与所述初始拼装字符连接形成认证拼装字符;
对所述认证拼装字符进行32位消息摘要算法第五版MD5加密,获得所述认证摘要值。
4.根据权利要求1至3中任一所述的方法,其特征在于,在所述接收外部客户端发送的接口调用请求之后,在所述根据所述调用参数,计算出认证摘要值之前,进一步包括:
确定接收到所述接口调用请求时的接收时间戳;
确定所述调用参数中的调用时间戳;
判断所述接收时间戳和所述调用时间戳的差值是否在预设的有效时间范围内,当所述差值在所述预设的有效时间范围内时,执行所述根据所述调用参数,计算出认证摘要值。
5.一种服务端,其特征在于,包括:接收单元、服务计算单元和判断单元,其中,
所述接收单元,用于接收外部客户端发送的接口调用请求,所述接口调用请求中包括调用参数和签名摘要值;
所述服务计算单元,用于根据所述接收单元接收的所述调用参数,计算出认证摘要值;
所述判断单元,用于判断所述接收单元接收的所述签名摘要值和所述服务计算单元计算的所述认证摘要值是否相同,当所述签名摘要值和所述认证摘要值相同时,确定所述外部客户端的接口调用请求合法。
6.根据权利要求5所述的服务端,其特征在于,所述服务计算单元,包括:第一排序子单元、拼装子单元和计算子单元,其中,
所述排序子单元,用于根据所述调用参数中的每个参数名对应的参数值,对所述参数名进行位置排序;
所述第一拼装子单元,用于根据所述排序子单元的所述位置排序,将所述调用参数中的每个所述参数名和每个所述参数名对应的参数值连接形成初始拼装字符;
所述第一计算子单元,用于通过摘要算法计算所述第一拼装子单元形成的所述初始拼装字符的摘要值,获得所述认证摘要值。
7.根据权利要求6所述的服务端,其特征在于,
所述第一计算子单元,包括:连接子单元和加密子单元,其中
所述连接子单元,用于将预先确定的认证密钥与所述第一拼装子单元形成的所述初始拼装字符连接形成认证拼装字符;
所述加密子单元,用于对所述连接子单元形成的所述认证拼装字符进行32位消息摘要算法第五版MD5加密,获得所述认证摘要值;
和/或,
进一步包括:第一确定单元、第二确定单元和执行单元,其中,
所述第一确定单元,用于确定所述接收单元接收到所述接口调用请求时的接收时间戳;
所述第二确定单元,用于确定所述接收单元接收的所述调用参数中的调用时间戳;
所述执行单元,用于判断所述第一确定单元确定的所述接收时间戳和所述第二确定单元确定的所述调用时间戳的差值是否在预设的有效时间范围内,当所述差值在所述预设的有效时间范围内时,执行所述服务计算单元。
8.一种客户端,其特征在于,包括:客户计算单元和发送单元,其中,
所述客户计算单元,用于根据调用参数,计算出签名摘要值;
所述发送单元,用于发送接口调用请求,所述接口调用请求中包括调用参数和签名摘要值。
9.根据权利要求8所述的客户端,其特征在于,所述客户计算单元,包括:第二排序子单元、第二拼接子单元和第二计算子单元,其中,
所述第二排序子单元,用于根据所述调用参数中的每个参数名对应的参数值,按照服务端的位置排序原则,对所述参数名进行位置排序;
所述第二拼接子单元,用于根据所述位置排序,将所述调用参数中的每个所述参数名和每个所述参数名对应的参数值连接形成初始拼装字符;
所述第二计算子单元,用于按照所述外部服务端中预先确定的认证密钥与所述初始拼装字符的连接方式,将预先确定的认证密钥与所述第二拼接子单元形成的初始拼装字符连接形成签名拼装字符;以及对所述签名拼装字符进行32位消息摘要算法第五版MD5加密,获得所述签名摘要值。
10.一种保护接口安全的系统,其特征在于,包括:权利要求5至7中任一所述的服务端和权利要求8或9中所述的客户端。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710095554.8A CN106850231A (zh) | 2017-02-22 | 2017-02-22 | 一种保护接口安全的方法、服务端及系统、一种客户端 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710095554.8A CN106850231A (zh) | 2017-02-22 | 2017-02-22 | 一种保护接口安全的方法、服务端及系统、一种客户端 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN106850231A true CN106850231A (zh) | 2017-06-13 |
Family
ID=59134037
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710095554.8A Pending CN106850231A (zh) | 2017-02-22 | 2017-02-22 | 一种保护接口安全的方法、服务端及系统、一种客户端 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106850231A (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108259479A (zh) * | 2017-12-28 | 2018-07-06 | 广州启生信息技术有限公司 | 业务数据处理方法、客户端与计算机可读存储介质 |
CN109309667A (zh) * | 2018-08-28 | 2019-02-05 | 东软集团股份有限公司 | 接口调用的认证方法和装置,存储介质和电子设备 |
CN109347843A (zh) * | 2018-10-26 | 2019-02-15 | 深圳点猫科技有限公司 | 一种基于教育系统的参数保密协议及电子设备 |
CN109525613A (zh) * | 2019-01-16 | 2019-03-26 | 湖南快乐阳光互动娱乐传媒有限公司 | 一种请求处理系统及方法 |
CN112995096A (zh) * | 2019-12-13 | 2021-06-18 | 中移动信息技术有限公司 | 数据加密、解密方法、装置及设备 |
CN116633636A (zh) * | 2023-05-29 | 2023-08-22 | 三峡高科信息技术有限责任公司 | 一种企业信息系统中的分级访问控制方法 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101145908A (zh) * | 2006-09-14 | 2008-03-19 | 华为技术有限公司 | 保障业务网络安全的系统、装置及方法 |
US20080313609A1 (en) * | 2003-03-25 | 2008-12-18 | Microsoft Corporation | Core object-oriented type system for semi-structured data |
CN103701761A (zh) * | 2012-09-28 | 2014-04-02 | 中国电信股份有限公司 | 开放接口调用的认证方法与系统 |
CN104935568A (zh) * | 2015-04-20 | 2015-09-23 | 成都康赛信息技术有限公司 | 一种面向云平台接口鉴权签名方法 |
CN105187449A (zh) * | 2015-09-30 | 2015-12-23 | 北京恒华伟业科技股份有限公司 | 一种接口调用方法及装置 |
CN105634743A (zh) * | 2015-12-30 | 2016-06-01 | 中国银联股份有限公司 | 用于开放接口调用的认证方法 |
-
2017
- 2017-02-22 CN CN201710095554.8A patent/CN106850231A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080313609A1 (en) * | 2003-03-25 | 2008-12-18 | Microsoft Corporation | Core object-oriented type system for semi-structured data |
CN101145908A (zh) * | 2006-09-14 | 2008-03-19 | 华为技术有限公司 | 保障业务网络安全的系统、装置及方法 |
CN103701761A (zh) * | 2012-09-28 | 2014-04-02 | 中国电信股份有限公司 | 开放接口调用的认证方法与系统 |
CN104935568A (zh) * | 2015-04-20 | 2015-09-23 | 成都康赛信息技术有限公司 | 一种面向云平台接口鉴权签名方法 |
CN105187449A (zh) * | 2015-09-30 | 2015-12-23 | 北京恒华伟业科技股份有限公司 | 一种接口调用方法及装置 |
CN105634743A (zh) * | 2015-12-30 | 2016-06-01 | 中国银联股份有限公司 | 用于开放接口调用的认证方法 |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108259479A (zh) * | 2017-12-28 | 2018-07-06 | 广州启生信息技术有限公司 | 业务数据处理方法、客户端与计算机可读存储介质 |
CN109309667A (zh) * | 2018-08-28 | 2019-02-05 | 东软集团股份有限公司 | 接口调用的认证方法和装置,存储介质和电子设备 |
CN109309667B (zh) * | 2018-08-28 | 2021-08-13 | 东软集团股份有限公司 | 接口调用的认证方法和装置,存储介质和电子设备 |
CN109347843A (zh) * | 2018-10-26 | 2019-02-15 | 深圳点猫科技有限公司 | 一种基于教育系统的参数保密协议及电子设备 |
CN109525613A (zh) * | 2019-01-16 | 2019-03-26 | 湖南快乐阳光互动娱乐传媒有限公司 | 一种请求处理系统及方法 |
CN109525613B (zh) * | 2019-01-16 | 2021-11-09 | 湖南快乐阳光互动娱乐传媒有限公司 | 一种请求处理系统及方法 |
CN112995096A (zh) * | 2019-12-13 | 2021-06-18 | 中移动信息技术有限公司 | 数据加密、解密方法、装置及设备 |
CN112995096B (zh) * | 2019-12-13 | 2023-04-25 | 中移动信息技术有限公司 | 数据加密、解密方法、装置及设备 |
CN116633636A (zh) * | 2023-05-29 | 2023-08-22 | 三峡高科信息技术有限责任公司 | 一种企业信息系统中的分级访问控制方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106850231A (zh) | 一种保护接口安全的方法、服务端及系统、一种客户端 | |
US10152588B2 (en) | Password check by decomposing password | |
US20220358242A1 (en) | Data security hub | |
WO2020134657A1 (zh) | 系统日志脱敏方法、脱敏系统、计算机设备及存储介质 | |
CN105933266B (zh) | 一种验证方法及服务器 | |
CN107391298A (zh) | 数据存储状态检测方法、装置及计算机可读存储介质 | |
US8667294B2 (en) | Apparatus and method for preventing falsification of client screen | |
US9800574B2 (en) | Method and apparatus for providing client-side score-based authentication | |
US8549314B2 (en) | Password generation methods and systems | |
CN109784870B (zh) | 合同管理方法、装置、计算机设备及计算机可读存储介质 | |
CN104657639B (zh) | 一种操作系统身份鉴别机制的测试方法和系统 | |
CN107294721A (zh) | 基于生物特征的身份注册、认证的方法和装置 | |
CN103973695A (zh) | 一种与服务器验证的签名算法 | |
CN108510290B (zh) | 通话中客户信息修改方法、装置、计算机设备及存储介质 | |
JP2016518667A (ja) | ユーザ認証 | |
CN108090351A (zh) | 用于处理请求消息的方法和装置 | |
CN110071917B (zh) | 用户口令检测方法、设备、装置及存储介质 | |
US10986084B1 (en) | Authentication data migration | |
CN111679975A (zh) | 单证生成方法、装置、电子设备及介质 | |
CN112329043A (zh) | 信息加密处理方法、装置、计算机设备及介质 | |
CN106548043A (zh) | 一种应用程序的授权方法、安装方法、安装端及系统 | |
CN106888094B (zh) | 一种签名方法及服务器 | |
US20060136738A1 (en) | System and method for password validation | |
CN111917783A (zh) | 一种通用报文的验证方法、装置及存储介质 | |
CN106878248A (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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20170613 |
|
RJ01 | Rejection of invention patent application after publication |