CN104836784B - 一种信息处理方法、客户端和服务器 - Google Patents

一种信息处理方法、客户端和服务器 Download PDF

Info

Publication number
CN104836784B
CN104836784B CN201410499586.0A CN201410499586A CN104836784B CN 104836784 B CN104836784 B CN 104836784B CN 201410499586 A CN201410499586 A CN 201410499586A CN 104836784 B CN104836784 B CN 104836784B
Authority
CN
China
Prior art keywords
information
server
client
application
sdk
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.)
Active
Application number
CN201410499586.0A
Other languages
English (en)
Other versions
CN104836784A (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.)
Tencent Technology Beijing Co Ltd
Original Assignee
Tencent Technology Beijing Co Ltd
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 Tencent Technology Beijing Co Ltd filed Critical Tencent Technology Beijing Co Ltd
Priority to CN201410499586.0A priority Critical patent/CN104836784B/zh
Publication of CN104836784A publication Critical patent/CN104836784A/zh
Application granted granted Critical
Publication of CN104836784B publication Critical patent/CN104836784B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Abstract

本发明公开了一种信息处理方法、客户端和服务器,方法包括:将使用软件开发工具包(SDK)的应用的第一信息发送给服务器;接收所述服务器在认定所述第一信息合法时返回的第二信息,所述第二信息是依据所述第一信息进行加密后生成的;依据从所述服务器获得的解密密钥对收到的所述第二信息进行解密获得第三信息,将所述第三信息与所述第一信息进行比较,并获得鉴权结果。

Description

一种信息处理方法、客户端和服务器
技术领域
本发明涉及信息安全领域的鉴权认证技术,尤其涉及一种信息处理方法、客户端和服务器。
背景技术
目前市场上很多软件服务都会以软件开发工具包(SDK,Software DevelopmentKit)的方式提供给第三方软件开发商使用,为防止SDK被盗用,通常需要使用鉴权系统对使用SDK的客户端进行鉴权。现有的鉴权系统是通过云端鉴权的方式来实现对客户端的鉴权,即客户端发送鉴权密钥(key)到云端,由云端通过鉴权判定客户端是否合法。
然而,云端鉴权的方式需要客户端与云端进行多次网络交互,其鉴权过程比较耗时,鉴权响应也不够及时;另外,云端鉴权的方式受限于网络状况的好坏而存在不确定性,在网络状况不好或无网络连接时,鉴权无法正常进行。
发明内容
为解决现有存在的技术问题,本发明实施例期望提供一种信息处理方法、客户端和服务器。
本发明实施例提供了一种信息处理方法,应用于请求使用软件开发工具包SDK的客户端,所述方法包括:
将使用SDK的应用的第一信息发送给服务器;其中,所述第一信息用于唯一的标识所述应用,且所述第一信息用作所述服务器进行合法性认定;
接收所述服务器在认定所述第一信息合法时返回的第二信息,所述第二信息是依据所述第一信息进行加密后生成的;其中,所述第二信息用作客户端本地鉴权;
依据从所述服务器获得的解密密钥对收到的所述第二信息进行解密获得第三信息,将所述第三信息与所述第一信息进行比较,并获得鉴权结果。
上述方案中,所述第二信息中还包括附加信息,所述附加信息是由所述服务器生成的,相应的所述解密获得第三信息中还包括所述附加信息;
所述方法进一步包括:
在鉴权结果为鉴权成功时,将所述鉴权结果和附加信息加密后获得第四信息,将所述第四信息发送给所述服务器,并接收所述服务器在认定解密获得的所述附加信息合法时返回的SDK。
上述方案中,所述附加信息为鉴权有效期限,
所述将所述第三信息与所述第一信息进行比较,获得鉴权结果,包括:
若所述第三信息与第一信息匹配,且在所述鉴权有效期限内,所述鉴权结果为鉴权成功;否则,所述鉴权结果为鉴权失败。
上述方案中,所述第一信息包括:使用SDK的应用的包名的消息摘要算法MD值、和/或应用签名的MD值。
上述方案中,所述方法进一步包括:
所述第二信息是依据所述第一信息进行RSA算法加密后生成的;
相应的,对收到的所述第二信息进行RSA算法解密获得第三信息。
本发明实施例还提供了一种信息处理方法,应用于服务器,所述方法包括:
接收客户端发送的使用软件开发工具包SDK的应用的第一信息;其中,所述第一信息用于唯一的标识所述应用,且所述第一信息作为所述服务器进行应用合法性认定的依据;
在认定所述第一信息合法时,依据所述第一信息进行加密获得第二信息,并将所述第二信息返回给所述客户端;其中,所述第二信息用作所述客户端进行本地鉴权。
上述方案中,所述依据第一信息进行加密获得第二信息包括:
生成附加信息,并将所述第一信息和附加信息组合后加密获得所述第二信息;
在将所述第二信息返回给客户端后,所述方法还包括:
接收所述客户端在鉴权成功时发送的第四信息,所述第四信息是由所述鉴权结果和附加信息组合后加密获得的;
对所述第四信息解密获得所述鉴权结果和附加信息,在确定所述鉴权结果为鉴权成功,且解密获得的所述附加信息与所述服务器生成的附加信息匹配时,向所述客户端返回SDK。
上述方案中,所述附加信息为鉴权有效期限,所述鉴权有效期限用作鉴权有效期的判断。
上述方案中,所述第一信息包括:使用SDK的应用的包名的消息摘要算法MD值、和/或应用签名的MD值;
所述依据第一信息进行加密获得第二信息,包括:依据所述第一信息进行RSA算法加密获得第二信息。
本发明实施例还提供了一种客户端,包括:
第一发送单元,用于将使用软件开发工具包SDK的应用的第一信息发送给服务器;其中,所述第一信息用于唯一的标识所述应用,且所述第一信息用作所述服务器进行合法性认定;
第一接收单元,用于接收所述服务器在认定所述第一信息合法时返回的第二信息,所述第二信息是依据所述第一信息进行加密后生成的;其中,所述第二信息用作客户端本地鉴权;
鉴权单元,用于依据从所述服务器获得的解密密钥对收到的所述第二信息进行解密获得第三信息,将所述第三信息与所述第一信息进行比较,并获得鉴权结果。
上述方案中,所述第二信息中还包括附加信息,所述附加信息是由所述服务器生成的,相应的所述解密获得第三信息中还包括所述附加信息;
所述鉴权单元进一步用于,在鉴权结果为鉴权成功时,将所述鉴权结果和附加信息加密后获得第四信息;
所述第一发送单元进一步用于,将所述第四信息发送给所述服务器;
所述第一接收单元进一步用于,接收所述服务器在认定解密获得的所述附加信息合法时返回的SDK。
上述方案中,所述附加信息为鉴权有效期限,
所述鉴权单元进一步用于,在所述第三信息与第一信息匹配,且在所述鉴权有效期限内时,获得所述鉴权结果为鉴权成功;否则,获得所述鉴权结果为鉴权失败。
上述方案中,所述第一信息包括:使用SDK的应用的包名的消息摘要算法MD值、和/或应用签名的MD值。
上述方案中,所述第二信息是依据所述第一信息进行RSA算法加密后生成的;
所述鉴权单元进一步用于,对收到的所述第二信息进行RSA算法解密获得第三信息。
本发明实施例还提供了一种服务器,包括:
第二接收单元,用于接收客户端发送的使用软件开发工具包SDK的应用的第一信息;其中,所述第一信息用于唯一的标识所述应用,且所述第一信息作为所述服务器进行应用合法性认定的依据;
处理单元,用于在认定所述第一信息合法时,依据所述第一信息进行加密获得第二信息;
第二发送单元,用于将所述第二信息返回给所述客户端;其中,所述第二信息用作所述客户端进行本地鉴权。
上述方案中,
所述处理单元进一步用于,在认定所述第一信息合法时,生成附加信息,并将所述第一信息和附加信息组合后加密获得所述第二信息;
所述第二接收单元进一步用于,接收所述客户端在鉴权成功时发送的第四信息,所述第四信息是由所述鉴权结果和附加信息组合后加密获得的;
所述处理单元进一步用于,对所述第四信息解密获得所述鉴权结果和附加信息,在确定所述鉴权结果为鉴权成功,且解密获得的所述附加信息与所述处理单元生成的附加信息匹配时,将SDK提供给所述第二发送单元;
所述第二发送单元进一步用于,向所述客户端返回SDK。
上述方案中,所述附加信息为鉴权有效期限,所述鉴权有效期限用作鉴权有效期的判断。
上述方案中,所述第一信息包括:使用SDK的应用的包名的消息摘要算法MD值、和/或应用签名的MD值;
所述处理单元进一步用于,依据所述第一信息进行RSA算法加密获得第二信息。
本发明实施例提供的一种信息处理方法、客户端和服务器,鉴权过程由客户端本地执行,不仅节省了网络交互的时间,还减少了网络带来的不确定性,还能减少后台的服务器和带宽成本压力;并且采用能够唯一性的标识应用的packagename和/或signatures作为鉴权的关键值,使鉴权结果具有较高的可靠性。
附图说明
图1为本发明实施例一的信息处理方法流程图;
图2为本发明实施例二的信息处理方法流程图;
图3为本发明实施例三的客户端结构示意图;
图4为本发明实施例四的服务器结构示意图;
图5为本发明实施例五的信息处理系统的结构示意图。
具体实施方式
下面结合附图和具体实施例对本发明的技术方案进一步详细阐述。
实施例一
本发明实施例一提供的一种信息处理方法,应用于请求使用SDK的客户端,如:请求使用SDK的第三方应用开发商的客户端等等;如图1所示,该方法主要包括:
步骤101,将使用SDK的应用的第一信息发送给服务器;其中,所述第一信息用于唯一的标识所述应用,且所述第一信息用作所述服务器进行合法性认定。
由于本发明实施例一的方法应用于请求使用SDK的客户端,因此,步骤101也可描述为:客户端将其自身使用SDK的应用的第一信息发送给服务器。
每个应用需要使用SDK,都要通过鉴权系统的鉴权,而鉴权需要提供应用的第一信息。
在一种优选实施方案中,所述第一信息可以包括:使用SDK的应用的包名(packagename)的消息摘要算法(MD)值、和/或应用签名(signatures)的MD值;较佳的,可以选择使用消息摘要算法第五版本(MD5)值。
由于在操作系统中,如Android系统、IOS系统等,应用的packagename、signatures具有不重复的特点(即唯一性),因此本发明实施例采用应用的packagename和/或signatures作为鉴权的关键值,能够提高鉴权结果的可靠性。
在上述应用的packagename和/或signatures的基础上,第一信息还可以包括使用SDK的应用的版本号等,将使用SDK的应用的版本号也作为鉴权的关键值,能够进一步提高鉴权结果的可靠性。
步骤102,接收服务器在认定所述第一信息合法时返回的第二信息,所述第二信息是依据第一信息进行加密后生成的。
由于本发明实施例一的方法应用于请求使用SDK的客户端,因此,步骤102也可描述为:客户端接收服务器返回的第二信息,所述第二信息是依据第一信息进行加密后生成的。第二信息为一字符串。
客户端将第一信息提供给服务器后,服务器需要依据接收的第一信息进行加密生成第二信息,并将所述第二信息返回给客户端;所述第二信息作为客户端进行本地鉴权的鉴权信息。
加密的算法可以采用但不仅限于RSA算法。RSA算法是一种非对称密钥算法,所谓非对称是指该算法需要一对密钥,即公钥和私钥,公钥用于加密,而私钥用于解密,私钥由服务器提供给客户端。
如果客户端提供的第一信息为使用SDK的应用的packagename的MD5值,那么服务器可以对所述packagename的MD5值进行RSA算法加密,生成第二信息;
如果客户端提供的第一信息为使用SDK的应用的signatures的MD5值,那么服务器可以对所述signatures的MD5值进行RSA算法加密,生成第二信息;
如果客户端提供的第一信息为使用SDK的应用的packagename的MD5值、以及signatures的MD5值,那么服务器可以对所述packagename和signatures的MD5值进行RSA算法加密,生成第二信息;
如果客户端提供的第一信息为使用SDK的应用的packagename的MD5值、使用SDK的应用的signatures的MD5值、以及使用SDK的应用的版本号,那么服务器可以对所述packagename和signatures的MD5值、以及所述版本号进行RSA算法加密,生成第二信息;
如果客户端提供的第一信息为使用SDK的应用的packagename的MD5值、以及使用SDK的应用的版本号,那么服务器可以对所述packagename的MD5值和所述版本号进行RSA算法加密,生成第二信息;
如果客户端提供的第一信息为使用SDK的应用的signatures的MD5值、以及使用SDK的应用的版本号,那么服务器可以对所述signatures的MD5值和所述版本号进行RSA算法加密,生成第二信息。
另外,在一种优选实施方案中,服务器在收到客户端提供的第一信息后,还可以生成一些其他的附加信息,并将所述第一信息和附加信息组合后加密生成第二信息,以进一步提高鉴权结果的可靠性。附加信息可以是服务器生成的鉴权有效期限,依此为例:
如果客户端提供的第一信息为使用SDK的应用的packagename的MD5值,那么服务器可以将所述packagename的MD5值,与生成的鉴权有效期限按预定协议组合后进行RSA算法加密,生成第二信息;
如果客户端提供的第一信息为使用SDK的应用的signatures的MD5值,那么服务器可以将所述signatures的MD5值,与生成的鉴权有效期限按预定协议组合后进行RSA算法加密,生成第二信息;
如果客户端提供的第一信息为使用SDK的应用的packagename的MD5值、以及signatures的MD5值,那么服务器可以将所述packagename和signatures的MD5值,与生成的鉴权有效期限按预定协议组合后进行RSA算法加密,生成第二信息;
如果客户端提供的第一信息为使用SDK的应用的packagename的MD5值、使用SDK的应用的signatures的MD5值、以及使用SDK的应用的版本号,那么服务器可以将所述packagename和signatures的MD5值、以及所述版本号,与生成的鉴权有效期限按预定协议组合后进行RSA算法加密,生成第二信息;
如果客户端提供的第一信息为使用SDK的应用的packagename的MD5值、以及使用SDK的应用的版本号,那么服务器可以将所述packagename的MD5值和所述版本号,与生成的鉴权有效期限按预定协议组合后进行RSA算法加密,生成第二信息;
如果客户端提供的第一信息为使用SDK的应用的signatures的MD5值、以及使用SDK的应用的版本号,那么服务器可以将所述signatures的MD5值和所述版本号,与生成的鉴权有效期限按预定协议组合后进行RSA算法加密,生成第二信息。
步骤103,依据从所述服务器获得的解密密钥对收到的第二信息进行解密获得第三信息,将第三信息与第一信息进行比较,并获得鉴权结果。
由于本发明实施例一的方法应用于请求使用SDK的客户端,因此,步骤103也可描述为:客户端对收到的第二信息进行解密获得第三信息,将第三信息与第一信息进行比较,并获得鉴权结果。
如果第二信息是依据所述第一信息进行RSA算法加密后生成的,那么需要对收到的第二信息进行RSA算法解密获得第三信息。其中,RSA算法加解密第一信息的过程包括:
服务器确定对所述第一信息进行RSA加密的公钥和私钥:公钥PK=(e,N),私钥SK=(d,N),N=p×q,p和q为秘密选择的两个大素数;其中,e和d的选择过程为:计算N的欧拉数Φ(N)=(p-1)(q-1),从[0,Φ(N)]选择一个与Φ(N)互素的数e,并计算满足ed≡1 modΦ(N)的d;
令加密前的第一信息明文为X,加密后的密文为Y,那么,加密的过程为Y=Xe modN,解密的过程为X=Yd mod N。也就是说,服务器将私钥SK只提供给客户端,所述服务器对第一信息用公钥PK进行加密,得到第二信息,并将第二信息发送给客户端;客户端对收到的第二信息用私钥SK进行解密,从而获得第三信息。
如果解密获得的第三信息中仅包括应用的packagename的MD5值,那么将第三信息与第一信息进行比较,包括:将解密获得的所述packagename的MD5值,与所述第一信息中的packagename的MD5值进行比较,以判断两者是否相同,若相同,则鉴权成功;否则,鉴权失败;
如果解密获得的第三信息中仅包括应用的signatures的MD5值,那么将第三信息与第一信息进行比较,包括:将解密获得的所述signatures的MD5值,与所述第一信息中的signatures的MD5值进行比较,以判断两者是否相同,若相同,则鉴权成功;否则,鉴权失败;
如果解密获得的第三信息中包括应用的packagename的MD5值、以及signatures的MD5值,那么将第三信息与第一信息进行比较,包括:将解密获得的所述packagename的MD5值、以及signatures的MD5值,与所述第一信息中的packagename的MD5值、signatures的MD5值分别进行比较,以判断两者是否相同,若全部相同,则鉴权成功;否则,鉴权失败;
如果解密获得的第三信息中包括应用的packagename的MD5值、signatures的MD5值、以及应用的版本号,那么将第三信息与第一信息进行比较,包括:将解密获得的所述packagename的MD5值、signatures的MD5值、以及应用的版本号,与所述第一信息中的packagename的MD5值、signatures的MD5值、以及版本号进行比较,以判断两者是否相同,若全部相同,则鉴权成功;否则,鉴权失败;
如果解密获得的第三信息中包括应用的packagename的MD5值、以及应用的版本号,那么将第三信息与第一信息进行比较,包括:将解密获得的所述packagename的MD5值、以及应用的版本号,与所述第一信息中的packagename的MD5值、以及版本号进行比较,以判断两者是否相同,若全部相同,则鉴权成功;否则,鉴权失败;
如果解密获得的第三信息中包括应用的signatures的MD5值、以及应用的版本号,那么将第三信息与第一信息进行比较,包括:将解密获得的所述signatures的MD5值、以及应用的版本号,与所述第一信息中的signatures的MD5值、以及版本号进行比较,以判断两者是否相同,若全部相同,则鉴权成功;否则,鉴权失败。
另外,在一种优选实施方案中,如果解密获得的第三信息中包括应用的packagename的MD5值、以及鉴权有效期限,那么将第三信息与第一信息进行比较,包括:将解密获得的所述packagename的MD5值,与所述第一信息中的packagename的MD5值进行比较,以判断两者是否相同,若两者相同、且当前在所述鉴权有效期限内,则鉴权成功;否则,鉴权失败;
如果解密获得的第三信息中包括应用的signatures的MD5值、以及鉴权有效期限,那么将第三信息与第一信息进行比较,包括:将解密获得的所述signatures的MD5值,与所述第一信息中的signatures的MD5值进行比较,以判断两者是否相同,若两者相同、且当前在所述鉴权有效期限内,则鉴权成功;否则,鉴权失败;
如果解密获得的第三信息中包括应用的signatures的MD5值、signatures的MD5值、以及鉴权有效期限,那么将第三信息与第一信息进行比较,包括:将解密获得的所述packagename的MD5值、以及signatures的MD5值,与所述第一信息中的packagename的MD5值、signatures的MD5值分别进行比较,以判断两者是否相同,若两者相同、且当前在所述鉴权有效期限内,则鉴权成功;否则,鉴权失败;
如果解密获得的第三信息中包括应用的packagename的MD5值、signatures的MD5值、应用的版本号、以及鉴权有效期限,那么将第三信息与第一信息进行比较,包括:将解密获得的所述packagename的MD5值、signatures的MD5值、以及应用的版本号,与所述第一信息中的packagename的MD5值、signatures的MD5值、以及版本号进行比较,以判断两者是否相同,若两者相同、且当前在所述鉴权有效期限内,则鉴权成功;否则,鉴权失败;
如果解密获得的第三信息中包括应用的packagename的MD5值、应用的版本号、以及鉴权有效期限,那么将第三信息与第一信息进行比较,包括:将解密获得的所述packagename的MD5值、以及应用的版本号,与所述第一信息中的packagename的MD5值、以及版本号进行比较,以判断两者是否相同,若两者相同、且当前在所述鉴权有效期限内,则鉴权成功;否则,鉴权失败;
如果解密获得的第三信息中包括应用的signatures的MD5值、应用的版本号、以及鉴权有效期限,那么将第三信息与第一信息进行比较,包括:将解密获得的所述signatures的MD5值、以及应用的版本号,与所述第一信息中的signatures的MD5值、以及版本号进行比较,以判断两者是否相同,若两者相同、且当前在所述鉴权有效期限内,则鉴权成功;否则,鉴权失败。
优选的,在获得鉴权结果后,本发明实施例一的方法还包括:客户端将鉴权结果发送给服务器,并接收鉴权结果为鉴权成功时服务器返回的SDK。
服务器为客户端提供统一的接口,在收到客户端发送的鉴权结果时,如果所述鉴权结果表明鉴权成功,则服务器允许向所述客户端提供所需SDK;如果所述鉴权结果表明鉴权失败,则服务器不允许向所述客户端提供所需SDK。
优选的,客户端可以在使用SDK的应用每次启动时执行本发明实施例一所述的本地鉴权过程,并将鉴权结果保存到服务器,这样,从所述应用本次启动到关闭之前,每次使用SDK时,只需由服务器查看相应的鉴权结果即可确认是否向所述客户端提供相应SDK,省去了多次鉴权的麻烦。待客户端的所述应用下次启动时,再重新执行本发明实施例一所述的本地鉴权过程,并同样的将本次的鉴权结果保存到服务器。
进一步的,客户端还可以在鉴权结果为鉴权成功时,将所述鉴权结果和附加信息加密后获得第四信息,将所述第四信息发送给所述服务器,并接收所述服务器在认定解密获得的所述附加信息合法时返回的SDK。客户端可以对所述鉴权结果和附加信息进行RSA加密获得第四信息;服务器对接收的第四信息进行RSA解密后获得鉴权结果和附加信息,如果鉴权结果为鉴权成功,且解密获得的附加信息与所述服务器生成的附加信息相匹配(即解密获得的附加信息合法),则向客户端返回SDK。这样处理,可以有效防止他人冒充所述客户端的应用向服务器非法发送鉴权结果、以及非法获得SDK。
通过本发明实施例一的方法,鉴权过程由客户端本地执行,不仅节省了网络交互的时间,还减少了网络带来的不确定性,还能减少后台的服务器和带宽成本压力;并且采用能够唯一性的标识应用的packagename和/或signatures作为鉴权的关键值,使鉴权结果具有较高的可靠性。
实施例二
本发明实施例二提供的一种信息处理方法,应用于SDK提供商的后台服务器,如图2所示,该方法主要包括:
步骤201,接收客户端发送的使用SDK的应用的第一信息;其中,所述第一信息用于唯一的标识所述应用,且所述第一信息作为所述服务器进行应用合法性认定的依据。
由于本发明实施例一的方法应用于SDK提供商的后台服务器,因此,步骤201也可描述为:服务器接收客户端发送的使用SDK的应用的第一信息。
每个应用需要使用SDK,都要通过鉴权系统的鉴权,而鉴权需要向SDK提供商的后台服务器提供应用的第一信息。
在一种优选实施方案中,所述第一信息可以包括:使用SDK的应用的packagename的MD值、和/或signatures的MD值;较佳的,可以选择使用MD5值。
由于在操作系统中,如Android系统、IOS系统等,应用的packagename、signatures具有不重复的特点(即唯一性),因此本发明实施例采用应用的packagename和/或signatures作为鉴权的关键值,能够提高鉴权结果的可靠性。
在上述应用的packagename和/或signatures的基础上,第一信息还可以包括使用SDK的应用的版本号等,将使用SDK的应用的版本号也作为鉴权的关键值,能够进一步提高鉴权结果的可靠性。
优选的,服务器在接收到第一信息后,可以先判断所述第一信息是否合法,并在判定合法时再执行步骤202,在判断不合法时,向客户端返回错误结果,并结束流程。判断第一信息是否合法的依据可以是:判断所述第一信息中的使用SDK的应用的packagename的MD值、和/或signatures的MD值,是否能够与服务器上已注册的应用的相应packagename和/或signatures的MD值相匹配。
步骤202,在认定所述第一信息合法时,依据第一信息进行加密获得第二信息,并将第二信息返回给客户端;其中,第二信息用作客户端进行本地鉴权。
客户端将第一信息提供给服务器后,服务器需要依据接收的第一信息进行加密生成第二信息,并将所述第二信息返回给客户端;所述第二信息作为客户端进行本地鉴权的鉴权信息。加密的算法可以采用但不仅限于RSA算法。
如果客户端提供的第一信息为使用SDK的应用的packagename的MD5值,那么服务器可以对所述packagename的MD5值进行RSA算法加密,生成第二信息;
如果客户端提供的第一信息为使用SDK的应用的signatures的MD5值,那么服务器可以对所述signatures的MD5值进行RSA算法加密,生成第二信息;
如果客户端提供的第一信息为使用SDK的应用的packagename的MD5值、以及signatures的MD5值,那么服务器可以对所述packagename和signatures的MD5值进行RSA算法加密,生成第二信息;
如果客户端提供的第一信息为使用SDK的应用的packagename的MD5值、使用SDK的应用的signatures的MD5值、以及使用SDK的应用的版本号,那么服务器可以对所述packagename和signatures的MD5值、以及所述版本号进行RSA算法加密,生成第二信息;
如果客户端提供的第一信息为使用SDK的应用的packagename的MD5值、以及使用SDK的应用的版本号,那么服务器可以对所述packagename的MD5值和所述版本号进行RSA算法加密,生成第二信息;
如果客户端提供的第一信息为使用SDK的应用的signatures的MD5值、以及使用SDK的应用的版本号,那么服务器可以对所述signatures的MD5值和所述版本号进行RSA算法加密,生成第二信息。
另外,在一种优选实施方案中,服务器在收到客户端提供的第一信息后,还可以生成一些其他的附加信息,并将所述第一信息和附加信息组合后加密生成第二信息,以进一步提高鉴权结果的可靠性。附加信息可以是服务器生成的鉴权有效期限,依此为例:
如果客户端提供的第一信息为使用SDK的应用的packagename的MD5值,那么服务器可以将所述packagename的MD5值,与生成的鉴权有效期限按预定协议组合后进行RSA算法加密,生成第二信息;
如果客户端提供的第一信息为使用SDK的应用的signatures的MD5值,那么服务器可以将所述signatures的MD5值,与生成的鉴权有效期限按预定协议组合后进行RSA算法加密,生成第二信息;
如果客户端提供的第一信息为使用SDK的应用的packagename的MD5值、以及signatures的MD5值,那么服务器可以将所述packagename和signatures的MD5值,与生成的鉴权有效期限按预定协议组合后进行RSA算法加密,生成第二信息;
如果客户端提供的第一信息为使用SDK的应用的packagename的MD5值、使用SDK的应用的signatures的MD5值、以及使用SDK的应用的版本号,那么服务器可以将所述packagename和signatures的MD5值、以及所述版本号,与生成的鉴权有效期限按预定协议组合后进行RSA算法加密,生成第二信息;
如果客户端提供的第一信息为使用SDK的应用的packagename的MD5值、以及使用SDK的应用的版本号,那么服务器可以将所述packagename的MD5值和所述版本号,与生成的鉴权有效期限按预定协议组合后进行RSA算法加密,生成第二信息;
如果客户端提供的第一信息为使用SDK的应用的signatures的MD5值、以及使用SDK的应用的版本号,那么服务器可以将所述signatures的MD5值和所述版本号,与生成的鉴权有效期限按预定协议组合后进行RSA算法加密,生成第二信息。
优选的,在将第二信息返回给客户端后,本发明实施例二的方法还可包括:服务器接收客户端发送的依据第二信息的鉴权结果,并在鉴权结果为鉴权成功时向客户端发送所述客户端请求的SDK。
服务器为客户端提供统一的接口,在收到客户端发送的鉴权结果时,如果所述鉴权结果表明鉴权成功,则服务器允许向所述客户端提供所需SDK;如果所述鉴权结果表明鉴权失败,则服务器不允许向所述客户端提供所需SDK。
进一步的,服务器可以接收所述客户端在鉴权成功时发送的第四信息,所述第四信息是由所述鉴权结果和附加信息组合后加密获得的;服务器对所述第四信息解密获得所述鉴权结果和附加信息,在确定所述鉴权结果为鉴权成功,且解密获得的所述附加信息与所述服务器生成的附加信息匹配时(即解密获得的附加信息合法),向所述客户端返回SDK。这样处理,可以有效防止他人冒充所述客户端的应用向服务器非法发送鉴权结果、以及非法获得SDK。
通过本发明实施例二的方法,服务器根据使用SDK的客户端提供的第一信息生成客户端用以本地鉴权的第二信息并返回给客户端,这样,鉴权过程由客户端本地执行,不仅节省了网络交互的时间,还减少了网络带来的不确定性,还能减少后台的服务器和带宽成本压力;并且采用能够唯一性的标识应用的packagename和/或signatures作为鉴权的关键值,使鉴权结果具有较高的可靠性。
实施例三
对应本发明实施例一的方法,本发明实施例三还提供了一种客户端,如图3所示,主要包括:第一发送单元31、第一接收单元32和鉴权单元33;其中,
第一发送单元31,用于将使用SDK的应用的第一信息发送给服务器;其中,所述第一信息用于唯一的标识所述应用,且所述第一信息用作所述服务器进行合法性认定;
第一接收单元32,用于接收服务器在认定所述第一信息合法时返回的第二信息,第二信息是依据第一信息进行加密后生成的;其中,所述第二信息用作客户端本地鉴权;
鉴权单元33,用于依据从所述服务器获得的解密密钥对收到的第二信息进行解密获得第三信息,将第三信息与第一信息进行比较,并获得鉴权结果。
优选的,所述第二信息中还包括附加信息,所述附加信息是由所述服务器生成的,相应的所述解密获得第三信息中还包括所述附加信息;
所述鉴权单元33进一步用于,在鉴权结果为鉴权成功时,将所述鉴权结果和附加信息加密后获得第四信息;
所述第一发送单元31进一步用于,将所述第四信息发送给所述服务器;
所述第一接收单元32进一步用于,接收所述服务器在认定解密获得的所述附加信息合法时返回的SDK。
所述附加信息可以为鉴权有效期限,
所述鉴权单元33进一步用于,在所述第三信息与第一信息匹配,且在所述鉴权有效期限内时,获得所述鉴权结果为鉴权成功;否则,获得所述鉴权结果为鉴权失败。
优选的,第一信息包括:使用SDK的应用的包名的MD值、和/或应用签名的MD值。
优选的,第二信息是依据第一信息进行RSA算法加密后生成的;
鉴权单元33进一步用于,对收到的第二信息进行RSA算法解密获得第三信息。
通过本发明实施例三,鉴权过程由客户端本地执行,不仅节省了网络交互的时间,还减少了网络带来的不确定性,还能减少后台的服务器和带宽成本压力;并且采用能够唯一性的标识应用的packagename和/或signatures作为鉴权的关键值,使鉴权结果具有较高的可靠性。
需要说明的是,上述第一发送单元31和第一接收单元32可以由客户端的通信功能芯片实现;鉴权单元33可以由客户端的中央处理器(CPU,Central Processing Unit)、微处理器(MPU,Micro Processing Unit)、数字信号处理器(DSP,Digital Signal Processor)或可编程逻辑阵列(FPGA,Field-Programmable Gate Array)实现。
实施例四
对应本发明实施例二的方法,本发明实施例四还提供了一种服务器,主要包括:第二接收单元41、处理单元42和第二发送单元43;其中,
第二接收单元41,用于接收客户端发送的使用SDK的应用的第一信息;其中,所述第一信息用于唯一的标识所述应用,且所述第一信息作为所述服务器进行应用合法性认定的依据;
处理单元42,用于在认定所述第一信息合法时,依据第一信息进行加密获得第二信息;
第二发送单元43,用于将第二信息返回给客户端;其中,第二信息用作客户端进行本地鉴权。
优选的,所述处理单元42进一步用于,在认定所述第一信息合法时,生成附加信息,并将所述第一信息和附加信息组合后加密获得所述第二信息;
所述第二接收单元41进一步用于,接收所述客户端在鉴权成功时发送的第四信息,所述第四信息是由所述鉴权结果和附加信息组合后加密获得的;
所述处理单元42进一步用于,对所述第四信息解密获得所述鉴权结果和附加信息,在确定所述鉴权结果为鉴权成功,且解密获得的所述附加信息与所述处理单元生成的附加信息匹配时(即解密获得的附加信息合法),将SDK提供给所述第二发送单元43;
所述第二发送单元43进一步用于,向所述客户端返回SDK。
所述附加信息可以为鉴权有效期限,所述鉴权有效期限用作鉴权有效期的判断。需要说明的是,所述附加信息不仅限于鉴权有效期限,也可以是其他形式的信息,只要能满足上述合法性认证需求的信息应当都适用于本发明实施例。
优选的,第一信息包括:使用SDK的应用的包名的MD值、和/或应用签名的MD值;
处理单元42进一步用于,依据第一信息进行RSA算法加密获得第二信息。
通过本发明实施例四,服务器根据使用SDK的客户端提供的第一信息生成客户端用以本地鉴权的第二信息并返回给客户端,这样,鉴权过程由客户端本地执行,不仅节省了网络交互的时间,还减少了网络带来的不确定性,还能减少后台的服务器和带宽成本压力;并且采用能够唯一性的标识应用的packagename和/或signatures作为鉴权的关键值,使鉴权结果具有较高的可靠性。
需要说明的是,上述第二接收单元41和第二发送单元43可以由服务器的通信功能芯片实现;处理单元42可以由服务器的CPU、MPU、DSP或FPGA实现。
实施例五
本发明实施例五还提供一种信息处理系统,如图5所示,包括上述实施例三的客户端01和实施例四的服务器02,而且,与一台服务器02连接的客户端01可以有多台;其中,客户端01和服务器02的功能分别参见前述实施例三和实施例四,此处不再赘述。
本发明实施例还提供了一种计算机可读存储介质,所述存储介质包括一组计算机可执行指令,所述指令用于执行本发明实施例所述客户端侧的信息处理方法。
本发明实施例还提供了一种计算机可读存储介质,所述存储介质包括一组计算机可执行指令,所述指令用于执行本发明实施例所述服务器侧的信息处理方法。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用硬件实施例、软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。

Claims (18)

1.一种信息处理方法,应用于请求使用软件开发工具包SDK的客户端,其特征在于,所述方法包括:
将使用SDK的应用的第一信息发送给服务器;其中,所述第一信息用于唯一的标识所述应用,且所述第一信息用作所述服务器进行合法性认定;
接收所述服务器在认定所述第一信息合法时返回的第二信息,所述第二信息是依据所述第一信息进行加密后生成的;其中,所述第二信息用作客户端本地鉴权;
依据从所述服务器获得的解密密钥对收到的所述第二信息进行解密获得第三信息,将所述第三信息与所述第一信息进行比较,并获得鉴权结果。
2.根据权利要求1所述信息处理方法,其特征在于,所述第二信息中还包括附加信息,所述附加信息是由所述服务器生成的,相应的所述解密获得第三信息中还包括所述附加信息;
所述方法进一步包括:
在鉴权结果为鉴权成功时,将所述鉴权结果和附加信息加密后获得第四信息,将所述第四信息发送给所述服务器,并接收所述服务器在认定解密获得的所述附加信息合法时返回的SDK。
3.根据权利要求2所述信息处理方法,其特征在于,所述附加信息为鉴权有效期限,
所述将所述第三信息与所述第一信息进行比较,获得鉴权结果,包括:
若所述第三信息与第一信息匹配,且在所述鉴权有效期限内,所述鉴权结果为鉴权成功;否则,所述鉴权结果为鉴权失败。
4.根据权利要求1、2或3所述信息处理方法,其特征在于,所述第一信息包括:使用SDK的应用的包名的消息摘要算法MD值、和/或应用签名的MD值。
5.根据权利要求1、2或3所述信息处理方法,其特征在于,所述方法进一步包括:
所述第二信息是依据所述第一信息进行RSA算法加密后生成的;
相应的,对收到的所述第二信息进行RSA算法解密获得第三信息。
6.一种信息处理方法,应用于服务器,其特征在于,所述方法包括:
接收客户端发送的使用软件开发工具包SDK的应用的第一信息;其中,所述第一信息用于唯一的标识所述应用,且所述第一信息作为所述服务器进行应用合法性认定的依据;
在认定所述第一信息合法时,依据所述第一信息进行加密获得第二信息,并将所述第二信息返回给所述客户端;其中,所述第二信息用作所述客户端进行本地鉴权。
7.根据权利要求6所述信息处理方法,其特征在于,所述依据第一信息进行加密获得第二信息包括:
生成附加信息,并将所述第一信息和附加信息组合后加密获得所述第二信息;
在将所述第二信息返回给客户端后,所述方法还包括:
接收所述客户端在鉴权成功时发送的第四信息,所述第四信息是由所述鉴权结果和附加信息组合后加密获得的;
对所述第四信息解密获得所述鉴权结果和附加信息,在确定所述鉴权结果为鉴权成功,且解密获得的所述附加信息与所述服务器生成的附加信息匹配时,向所述客户端返回SDK。
8.根据权利要求7所述信息处理方法,其特征在于,所述附加信息为鉴权有效期限,所述鉴权有效期限用作鉴权有效期的判断。
9.根据权利要求6、7或8所述信息处理方法,其特征在于,所述第一信息包括:使用SDK的应用的包名的消息摘要算法MD值、和/或应用签名的MD值;
所述依据第一信息进行加密获得第二信息,包括:依据所述第一信息进行RSA算法加密获得第二信息。
10.一种客户端,其特征在于,包括:
第一发送单元,用于将使用软件开发工具包SDK的应用的第一信息发送给服务器;其中,所述第一信息用于唯一的标识所述应用,且所述第一信息用作所述服务器进行合法性认定;
第一接收单元,用于接收所述服务器在认定所述第一信息合法时返回的第二信息,所述第二信息是依据所述第一信息进行加密后生成的;其中,所述第二信息用作客户端本地鉴权;
鉴权单元,用于依据从所述服务器获得的解密密钥对收到的所述第二信息进行解密获得第三信息,将所述第三信息与所述第一信息进行比较,并获得鉴权结果。
11.根据权利要求10所述客户端,其特征在于,所述第二信息中还包括附加信息,所述附加信息是由所述服务器生成的,相应的所述解密获得第三信息中还包括所述附加信息;
所述鉴权单元进一步用于,在鉴权结果为鉴权成功时,将所述鉴权结果和附加信息加密后获得第四信息;
所述第一发送单元进一步用于,将所述第四信息发送给所述服务器;
所述第一接收单元进一步用于,接收所述服务器在认定解密获得的所述附加信息合法时返回的SDK。
12.根据权利要求11所述客户端,其特征在于,所述附加信息为鉴权有效期限,
所述鉴权单元进一步用于,在所述第三信息与第一信息匹配,且在所述鉴权有效期限内时,获得所述鉴权结果为鉴权成功;否则,获得所述鉴权结果为鉴权失败。
13.根据权利要求10、11或12所述客户端,其特征在于,所述第一信息包括:使用SDK的应用的包名的消息摘要算法MD值、和/或应用签名的MD值。
14.根据权利要求10、11或12所述客户端,其特征在于,所述第二信息是依据所述第一信息进行RSA算法加密后生成的;
所述鉴权单元进一步用于,对收到的所述第二信息进行RSA算法解密获得第三信息。
15.一种服务器,其特征在于,包括:
第二接收单元,用于接收客户端发送的使用软件开发工具包SDK的应用的第一信息;其中,所述第一信息用于唯一的标识所述应用,且所述第一信息作为所述服务器进行应用合法性认定的依据;
处理单元,用于在认定所述第一信息合法时,依据所述第一信息进行加密获得第二信息;
第二发送单元,用于将所述第二信息返回给所述客户端;其中,所述第二信息用作所述客户端进行本地鉴权。
16.根据权利要求15所述服务器,其特征在于,
所述处理单元进一步用于,在认定所述第一信息合法时,生成附加信息,并将所述第一信息和附加信息组合后加密获得所述第二信息;
所述第二接收单元进一步用于,接收所述客户端在鉴权成功时发送的第四信息,所述第四信息是由所述鉴权结果和附加信息组合后加密获得的;
所述处理单元进一步用于,对所述第四信息解密获得所述鉴权结果和附加信息,在确定所述鉴权结果为鉴权成功,且解密获得的所述附加信息与所述处理单元生成的附加信息匹配时,将SDK提供给所述第二发送单元;
所述第二发送单元进一步用于,向所述客户端返回SDK。
17.根据权利要求16所述服务器,其特征在于,所述附加信息为鉴权有效期限,所述鉴权有效期限用作鉴权有效期的判断。
18.根据权利要求15、16或17所述服务器,其特征在于,所述第一信息包括:使用SDK的应用的包名的消息摘要算法MD值、和/或应用签名的MD值;
所述处理单元进一步用于,依据所述第一信息进行RSA算法加密获得第二信息。
CN201410499586.0A 2014-09-25 2014-09-25 一种信息处理方法、客户端和服务器 Active CN104836784B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410499586.0A CN104836784B (zh) 2014-09-25 2014-09-25 一种信息处理方法、客户端和服务器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410499586.0A CN104836784B (zh) 2014-09-25 2014-09-25 一种信息处理方法、客户端和服务器

Publications (2)

Publication Number Publication Date
CN104836784A CN104836784A (zh) 2015-08-12
CN104836784B true CN104836784B (zh) 2018-05-15

Family

ID=53814423

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410499586.0A Active CN104836784B (zh) 2014-09-25 2014-09-25 一种信息处理方法、客户端和服务器

Country Status (1)

Country Link
CN (1) CN104836784B (zh)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106295310A (zh) * 2016-07-28 2017-01-04 乐视控股(北京)有限公司 第三方程序sdk验证处理方法及装置
CN107689934B (zh) * 2016-08-03 2020-12-04 腾讯科技(深圳)有限公司 一种保障信息安全的方法、服务器及客户端
CN106709280A (zh) * 2016-12-08 2017-05-24 北京旷视科技有限公司 信息处理方法和用于信息处理的客户端、服务器端
CN107483177B (zh) * 2017-07-07 2020-10-23 苏州浪潮智能科技有限公司 一种验证加密设备加密数据真实性的方法及系统
CN108229193B (zh) * 2018-01-17 2021-07-27 郭娴 一种穿戴设备终端信息加密方法、加密数据预警器及穿戴设备终端
CN108683712B (zh) * 2018-04-25 2021-04-27 咪咕文化科技有限公司 应用程序校验及校验密钥的生成方法、装置及存储介质
CN109117647B (zh) * 2018-07-17 2021-03-02 众安信息技术服务有限公司 一种移动应用sdk的权限控制管理方法及管理系统
CN111416793B (zh) * 2019-01-08 2022-05-24 杭州海康威视数字技术股份有限公司 基于开放平台的权限控制方法和嵌入式设备
CN112689285B (zh) * 2020-12-10 2023-08-15 航天信息股份有限公司 一种移动端sdk的授权认证方法及系统
CN112800393B (zh) * 2021-01-29 2022-08-26 深圳市商汤科技有限公司 授权认证、软件开发工具包生成方法、装置及电子设备

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102378170A (zh) * 2010-08-27 2012-03-14 中国移动通信有限公司 一种鉴权及业务调用方法、装置和系统
CN103561006A (zh) * 2013-10-24 2014-02-05 北京奇虎科技有限公司 基于安卓系统的应用认证方法和装置及应用认证服务器

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101938708A (zh) * 2010-08-19 2011-01-05 浙江元亨通信技术有限公司 一种基于手机终端实现无线集群通信的方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102378170A (zh) * 2010-08-27 2012-03-14 中国移动通信有限公司 一种鉴权及业务调用方法、装置和系统
CN103561006A (zh) * 2013-10-24 2014-02-05 北京奇虎科技有限公司 基于安卓系统的应用认证方法和装置及应用认证服务器

Also Published As

Publication number Publication date
CN104836784A (zh) 2015-08-12

Similar Documents

Publication Publication Date Title
CN104836784B (zh) 一种信息处理方法、客户端和服务器
KR102018971B1 (ko) 네트워크 액세스 디바이스가 무선 네트워크 액세스 포인트를 액세스하게 하기 위한 방법, 네트워크 액세스 디바이스, 애플리케이션 서버 및 비휘발성 컴퓨터 판독가능 저장 매체
US8793497B2 (en) Puzzle-based authentication between a token and verifiers
EP2538606B1 (en) Provisioning a shared secret to a portable electronic device and to a service entity
US7552322B2 (en) Using a portable security token to facilitate public key certification for devices in a network
US8595501B2 (en) Network helper for authentication between a token and verifiers
EP2845141B1 (en) Method and system for activation
US8601267B2 (en) Establishing a secured communication session
CN109150897B (zh) 一种端到端的通信加密方法及装置
CN110784322B (zh) 一种网关设备与云平台连接的方法、系统、设备及介质
CN111435913B (zh) 一种物联网终端的身份认证方法、装置和存储介质
CN109981562B (zh) 一种软件开发工具包授权方法及装置
US20100293376A1 (en) Method for authenticating a clent mobile terminal with a remote server
CN107612889B (zh) 防止用户信息泄露的方法
CN108243181A (zh) 一种车联网终端、数据加密方法及车联网服务器
CN110198295A (zh) 安全认证方法和装置及存储介质
WO2016115807A1 (zh) 无线路由器的接入处理、接入方法及装置
CN111130798B (zh) 一种请求鉴权方法及相关设备
CN111654481B (zh) 一种身份认证方法、装置和存储介质
CN111181723A (zh) 物联网设备间离线安全认证的方法和装置
CN116599719A (zh) 一种用户登录认证方法、装置、设备、存储介质
CN114978542B (zh) 面向全生命周期的物联网设备身份认证方法、系统及存储介质
CN110851891B (zh) 终端遗失后保障安全的方法、装置、系统、设备及介质
CN115801287A (zh) 签名认证方法和装置
CN117062032A (zh) 蓝牙设备的绑定方法、通信方法、装置、电子设备及介质

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
EXSB Decision made by sipo to initiate substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant