CN104199657A - 开放平台的调用方法及装置 - Google Patents
开放平台的调用方法及装置 Download PDFInfo
- Publication number
- CN104199657A CN104199657A CN201410428908.2A CN201410428908A CN104199657A CN 104199657 A CN104199657 A CN 104199657A CN 201410428908 A CN201410428908 A CN 201410428908A CN 104199657 A CN104199657 A CN 104199657A
- Authority
- CN
- China
- Prior art keywords
- identification information
- application
- open platform
- enciphered message
- call
- 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
Links
Landscapes
- Telephonic Communication Services (AREA)
Abstract
本发明提供一种开放平台的调用方法及装置。本发明实施例通过获取应用的身份标识信息,进而对所述身份标识信息进行加密处理,以获得所述应用的加密信息,并向开放平台发送所述加密信息和所述应用的应用标识信息,使得能够接收所述开放平台发送的访问令牌,用以调用所述开放平台所提供的开放API,由于没有传输明文的验证参数,从而提高了安全平台的调用的安全性。
Description
【技术领域】
本发明涉及授权技术,尤其涉及一种开放平台的调用方法及装置。
【背景技术】
在互联网时代,把网站的服务封装成一系列机器易识别的数据接口开放出去,供第三方开发者使用,这种行为就叫做开放(Open)应用程序编程接口(Application Programming Interface,API),提供开放API的平台本身就被称为开放平台(Open Platform)。目前,大部分开放平台所提供的开放API,在被第三方应用调用时,都需要第三方应用通过开放平台所提供的授权机制获取一个访问令牌,又可以称为访问授权码。在第三方应用每次调用开放API时,都需要携带这个访问令牌,以供开放平台能够根据该访问令牌,向第三方应用提供相应的访问权限。
现有技术中,应用可以利用应用开放平台为应用分配的应用标识信息和密钥信息,向开放平台请求获取访问令牌,安全性不高。
【发明内容】
本发明的多个方面提供一种开放平台的调用方法及装置,用以提高安全平台的调用的安全性。
本发明的一方面,提供一种开放平台的调用方法,包括:
获取应用的身份标识信息;
对所述身份标识信息进行加密处理,以获得所述应用的加密信息;
向开放平台发送所述加密信息和所述应用的应用标识信息;
接收所述开放平台发送的访问令牌,用以调用所述开放平台所提供的开放API,所述访问令牌为所述开放平台利用应用注册的身份标识信息,对待验证的身份标识信息进行验证成功之后获得的,所述应用注册的身份标识信息为所述开放平台根据所述应用标识信息获得的,所述待验证的身份标识信息为所述开放平台对所述加密信息进行解密处理获得的。
如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,所述获取应用的身份标识信息,包括:
调用所述应用所提供的接口,以获得所述身份标识信息。
如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,所述调用所述应用所提供的接口,以获得所述身份标识信息,包括:
调用所述应用的Java语言库接口;采用JNI技术,调用所述应用的C语言库接口或C++语言库接口,以调用所述操作系统所提供的接口,以获得所述身份标识信息。
如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,所述身份标识信息包括包名和包签名中的至少一项。
如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,所述对所述身份标识信息进行加密处理,以获得所述应用的加密信息之前,还包括:
获取当前的网络时间戳;
所述对所述身份标识信息进行加密处理,以获得所述应用的加密信息,包括:
对所述身份标识信息和所述网络时间戳进行加密处理,以获得所述加密信息;
所述向开放平台发送所述加密信息和所述应用的应用标识信息,包括:
向所述开放平台发送所述应用的应用标识信息、所述网络时间戳和所述加密信息;
所述应用注册的身份标识信息具体为所述开放平台根据所述网络时间戳和所述应用标识信息获得的,所述网络时间戳和所述待验证的身份标识信息为所述开放平台对所述加密信息进行解密处理获得的。
本发明的另一方面,提供一种开放平台的调用装置,包括:
获取单元,用于获取应用的身份标识信息;
加密单元,用于对所述身份标识信息进行加密处理,以获得所述应用的加密信息;
发送单元,用于向开放平台发送所述加密信息和所述应用的应用标识信息;
接收单元,用于接收所述开放平台发送的访问令牌,用以调用所述开放平台所提供的开放API,所述访问令牌为所述开放平台利用应用注册的身份标识信息,对待验证的身份标识信息进行验证成功之后获得的,所述应用注册的身份标识信息为所述开放平台根据所述应用标识信息获得的,所述待验证的身份标识信息为所述开放平台对所述加密信息进行解密处理获得的。
如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,所述获取单元,具体用于
调用所述应用所提供的接口,以获得所述身份标识信息。
如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,所述获取单元,具体用于
调用所述应用的Java语言库接口;采用JNI技术,调用所述应用的C语言库接口或C++语言库接口,以调用所述操作系统所提供的接口,以获得所述身份标识信息。
如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,所述身份标识信息包括包名和包签名中的至少一项。
如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,
所述获取单元,还用于
获取当前的网络时间戳;
所述加密单元,具体用于
对所述身份标识信息和所述网络时间戳进行加密处理,以获得所述加密信息;
所述发送单元,具体用于
向所述开放平台发送所述应用的应用标识信息、所述网络时间戳和所述加密信息;
所述应用注册的身份标识信息具体为所述开放平台根据所述网络时间戳和所述应用标识信息获得的,所述网络时间戳和所述待验证的身份标识信息为所述开放平台对所述加密信息进行解密处理获得的。
由上述技术方案可知,本发明实施例通过获取应用的身份标识信息,进而对所述身份标识信息进行加密处理,以获得所述应用的加密信息,并向开放平台发送所述加密信息和所述应用的应用标识信息,使得能够接收所述开放平台发送的访问令牌,用以调用所述开放平台所提供的开放API,由于没有传输明文的验证参数,从而提高了安全平台的调用的安全性。
另外,采用本发明提供的技术方案,由于没有传输明文的密钥信息,能够避免由于验证参数泄露而导致的安全问题,能够进一步提高安全平台的调用的安全性。
另外,采用本发明提供的技术方案,应用和应用所对应的服务器无需存储密钥信息,能够避免由于验证参数泄露而导致的安全问题,能够进一步提高安全平台的调用的安全性。
另外,采用本发明提供的技术方案,通过利用C语言库接口或C++语言库接口,直接调用操作系统所提供的接口,来获得应用的身份标识信息,使得恶意的应用无法伪造身份标识信息,能够避免由于恶意的应用伪造身份标识信息而导致的安全问题,能够进一步提高安全平台的调用的安全性。
另外,采用本发明提供的技术方案,由于利用C语言库接口或C++语言库接口,实现加密处理所需要的对象即应用的身份标识信息,的获取,攻击者想要完全破解的难度相当大,能够进一步提高安全平台的调用的安全性。
另外,采用本发明提供的技术方案,由于除了加密信息和应用的应用标识信息之外,还进一步将当前的网络时间戳作为验证参数,发送给开放平台,以共同参与开放平台对加密信息的验证操作,使得攻击者无法通过重放验证参数来通过验证,能够避免由于攻击者利用重放验证参数而导致的安全问题,能够进一步提高安全平台的调用的安全性。
【附图说明】
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明一实施例提供的开放平台的调用方法的流程示意图;
图2为本发明另一实施例提供的开放平台的调用方法的流程示意图;
图3为本发明另一实施例提供的开放平台的调用装置的结构示意图。
【具体实施方式】
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的全部其他实施例,都属于本发明保护的范围。
需要说明的是,本发明实施例中所涉及的终端可以包括但不限于手机、个人数字助理(Personal Digital Assistant,PDA)、无线手持装置、无线上网本、个人电脑、便携电脑、平板电脑、MP3播放器、MP4播放器、可穿戴设备(例如,智能眼镜、智能手表、智能手环等)等。
另外,本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
图1为本发明一实施例提供的开放平台的调用方法的流程示意图,如图1所示。
101、获取应用的身份标识信息。
其中,应用,即第三方应用,是指运行在装载操作系统的终端上的应用程序,可以为安卓(Android)应用,或者还可以为IOS应用,本实施例对此不进行特别限定。安卓(Android)应用,是运行在装载安卓操作系统的终端上的应用程序。IOS应用,是运行在装载IOS操作系统的终端上的应用程序。
102、对所述身份标识信息进行加密处理,以获得所述应用的加密信息。
103、向开放平台发送所述加密信息和所述应用的应用标识信息。
104、接收所述开放平台发送的访问令牌,用以调用所述开放平台所提供的开放API,所述访问令牌为所述开放平台利用应用注册的身份标识信息,对待验证的身份标识信息进行验证成功之后获得的,所述应用注册的身份标识信息为所述开放平台根据所述应用标识信息获得的,所述待验证的身份标识信息为所述开放平台对所述加密信息进行解密处理获得的。
访问令牌(token)可以为一个唯一的字符串,用于标识应用。一旦身份验证通过之后,应用在后续与开放平台的通信过程中,需要携带这个访问令牌,用于表明其身份。
需要说明的是,101~104的执行主体可以为位于本地终端的应用,或者还可以为位于本地终端的应用中的插件或软件开发工具包(SoftwareDevelopment Kit,SDK)等功能单元,这些功能单元具体可以由一系列编程语言代码和编程语言代码所实现的库(例如,LIB库等)组成,本实施例对此不进行特别限定。
可以理解的是,所述应用可以是安装在终端上的应用程序(nativeApp),或者还可以是终端上的浏览器的一个网页程序(webApp),本实施例对此不进行限定。
这样,通过获取应用的身份标识信息,进而对所述身份标识信息进行加密处理,以获得所述应用的加密信息,并向开放平台发送所述加密信息和所述应用的应用标识信息,使得能够接收所述开放平台发送的访问令牌,用以调用所述开放平台所提供的开放API,由于没有传输明文的验证参数,从而提高了安全平台的调用的安全性。
可选地,在本实施例的一个可能的实现方式中,在101之前,应用具体可以与开放平台进行交互,以执行注册操作。在执行注册操作的过程中,应用具体可以向开放平台发送应用的身份标识信息。完成注册操作之后,应用获得一个由开放平台为应用分配的应用标识信息例如,应用ID等,用以在开放平台上唯一标识该应用。
其中,所述身份标识信息可以包括但不限于包名和包签名中的至少一项。
例如,安卓应用的包(package)名,是指安卓应用的安装包(AndroidPackage Kit,APK)文件的名称。安卓应用的包签名,是指安卓应用的安装包(Android Package Kit,APK)文件的签名信息。
一般来说,APK文件,是一种安卓操作系统上的应用安装文件格式,其英文全称为“Application Package File”。一个安卓应用的代码想要在装载安卓操作系统的设备上运行,必须先进行编译,然后被打包成为一个被安卓操作系统所能识别的文件才可以被运行,而这种能被安卓操作系统识别并运行的文件格式便是“.APK”。一个APK文件内包含清单文件(AndroidManifest.xml)、META-INFO文件夹、被编译的代码文件(classes.dex)、res文件夹和资源文件(resources.arsc)。其中,APK文件的详细描述可以参见现有技术中的相关内容,此处不再赘述。APK文件实际上是一个ZIP压缩包。其中,APK文件的名称,可以存储在AndroidManifest.xml中。APK文件的签名信息,可以存储在META-INF目录即META-INF文件夹下。
可选地,在本实施例的一个可能的实现方式中,在101中,具体可以调用所述应用所提供的接口,以获得所述身份标识信息。
具体地,具体可以调用所述应用的Java语言库接口;采用Java本地调用(Java Native Interface,JNI)技术,调用所述应用的C语言库接口或C++语言库接口,以调用所述操作系统所提供的接口,以获得所述身份标识信息。
这样,通过利用C语言库接口或C++语言库接口,直接调用操作系统所提供的接口,来获得应用的身份标识信息,使得恶意的应用无法伪造身份标识信息,能够避免由于恶意的应用伪造身份标识信息而导致的安全问题,能够进一步提高安全平台的调用的安全性。
此外,由于利用C语言库接口或C++语言库接口,实现加密处理所需要的对象即应用的身份标识信息,的获取,攻击者想要完全破解的难度相当大,能够进一步提高安全平台的调用的安全性。
可选地,在本实施例的一个可能的实现方式中,在102中,具体可以采用现有技术中的任何加密算法,对所述身份标识信息进行加密处理。例如,数据加密算法(Data Encryption Standard,DES)、RC算法等对称加密算法或其他非对称加密算法,对所述身份标识信息进行加密处理,本实施例对此不进行特别限定。
本实施例中,开放平台接收到所述加密信息之后,则可以对所述加密信息进行解密处理,以获得待验证的身份标识信息,以及接收到所述应用标识信息之后,则可以根据所述应用标识信息,获得所述应用注册的身份标识信息,进而利用所述应用注册的身份标识信息,对所述待验证的身份标识信息进行验证。若所述待验证的身份标识信息与所述应用注册的身份标识信息一致,则说明验证成功;若所述待验证的身份标识信息与所述应用注册的身份标识信息不一致,则说明验证失败。
可以理解的是,开放平台对所述加密信息进行的解密处理,应该与102中所执行的加密处理互为逆运算,其所使用的密钥信息也应该是对应的。
对于对称加密算法来说,“对应”的含义为,加密处理所使用的密钥信息与解密处理所使用的密钥信息是一致的;对于非对称加密算法来说,“对应”的含义为,加密处理所使用的密钥信息与解密处理所使用的密钥信息互为一个密钥对。
可选地,在本实施例的一个可能的实现方式中,在102之前,还可以进一步获取当前的网络时间戳。
之所以获取当前的网络时间戳,原因在于,很多用户都会修改终端上的系统时间戳,系统时间戳与真正的网络时间戳一般都是不一致的,甚至相差会很大,因此,终端上的系统时间戳并不能准确地反映当前的时间信息,只有网络时间戳才能准确地反映当前的时间信息。
需要说明的是,执行获取应用的身份标识信息的步骤与执行获取当前的网络时间戳的步骤,没有固定的执行顺序,可以先执行获取应用的身份标识信息的步骤,再执行获取当前的网络时间戳的步骤,或者还可以执行获取应用的身份标识信息的步骤的同时,执行获取当前的网络时间戳的步骤,或者还可以先执行获取当前的网络时间戳的步骤,再执行获取应用的身份标识信息的步骤,本实施例对此不进行特别限定。
相应地,在102中,具体可以对所述身份标识信息和所述网络时间戳进行加密处理,以获得所述加密信息。在103中,则可以向所述开放平台发送所述应用的应用标识信息、所述网络时间戳和所述加密信息,以供所述开放平台对所述加密信息进行解密处理,以获得所述网络时间戳和待验证的身份标识信息,根据所述网络时间戳和所述应用标识信息,获得所述应用注册的身份标识信息,以及利用所述应用注册的身份标识信息,对所述待验证的身份标识信息进行验证。
具体地,开放平台接收到所述应用的应用标识信息、所述网络时间戳和所述加密信息之后,首先可以对所述加密信息进行解密处理,以获得所述网络时间戳和待验证的身份标识信息。然后,根据所述网络时间戳和当前的系统时间戳进行判断,以确定当前所接收到的这些验证参数(即所述应用的应用标识信息、所述网络时间戳和所述加密信息)是否为攻击者的重放攻击。若所述网络时间戳与当前的系统时间戳之间的差值小于或等于预先设置的时间阈值例如,5分钟,则可以确定当前所接收到的这些验证参数不是攻击者的重放攻击,是一个正常的消息,可以继续执行后续操作即执行根据所述应用标识信息,获得所述应用注册的身份标识信息;若所述网络时间戳与当前的系统时间戳之间的差值大于该时间阈值,则可以确定当前所接收到的这些验证参数是攻击者的重放攻击,是一个异常的消息,不再执行后续操作即不再执行根据所述应用标识信息,获得所述应用注册的身份标识信息,进一步还可以直接返回错误代码。
之所以利用当前的系统时间戳,原因在于,大部分开放平台都能够保证其上的系统时间戳与真正的网络时间戳是一致的,因此,开放平台的系统时间戳已经能够准确地反映当前的时间信息,无需再去获取网络时间戳。
重放攻击(Replay Attacks)又称重播攻击、回放攻击或新鲜性攻击(Freshness Attacks),是指攻击者发送一个目的主机已接收过的包,来达到欺骗系统的目的,主要用于身份认证过程,破坏认证的正确性。它是一种攻击类型,这种攻击会不断恶意或欺诈性地重复一个有效的数据传输,重放攻击可以由发起者,也可以由拦截并重发该数据的敌方进行。攻击者利用网络监听或者其他方式盗取认证凭据例如,本发明中的验证参数等,之后再把它重新发给认证服务器例如,本发明中的开放平台等。
从这个解释上理解,加密处理可以有效防止会话劫持,但是却防止不了重放攻击。重放攻击任何网络通信过程中都可能发生。
这样,由于除了加密信息和应用的应用标识信息之外,还进一步将当前的网络时间戳作为验证参数,发送给开放平台,以共同参与开放平台对加密信息的验证操作,使得攻击者无法通过重放验证参数来通过验证,能够避免由于攻击者利用重放验证参数而导致的安全问题,能够进一步提高安全平台的调用的安全性。
下面将以本地终端的安卓应用A,以及位于安卓应用A中的SDK为例,详细说明本发明所提供的技术方案。本实施例所提供的SDK,具体可以由一系列Java语言代码和C语言/C++语言代码所实现的LIB库组成,该C语言/C++语言代码所实现的LIB库中存储C语言/C++语言库接口。如图2所示。
201、安卓应用A向开放平台发送安卓应用A的包名和包签名,以执行注册操作。
202、开放平台为安卓应用A分配应用ID。
203、开放平台向安卓应用A发送所分配的应用ID。
204、安卓应用A获取当前的网络时间戳。
205、安卓应用A调用SDK提供的用于获取签名信息的Java语言库接口,将所述网络时间戳传入C语言/C++语言库接口,以调用操作系统所提供的接口,以获得该安卓应用A的包名和包签名。
SDK提供的用于获取签名信息的Java语言库接口被调用之后,可以利用预先设置的加密密钥,对安卓应用A的包名和包签名、以及所述网络时间戳进行加密处理,以获得安卓应用A的加密信息。
206、安卓应用A向开放平台发送安卓应用A的应用ID、所述加密信息和所述网络时间戳。
207、开放平台利用预先设置的解密密钥(与获得加密信息时所使用的加密密钥为对应的),对所述加密信息进行解密处理,以获得所述网络时间戳和待验证的安卓应用A的包名和包签名。
208、开放平台根据所述网络时间戳和当前的系统时间戳进行判断,以确定当前所接收到的验证参数(即安卓应用A的应用ID、所述加密信息和所述网络时间戳)是否为攻击者的重放攻击,若不是攻击者的重放攻击,则执行209,否则,结束流程。
209、开放平台根据安卓应用A的应用ID,获得安卓应用A注册的安卓应用A的包名和包签名。
210、开放平台利用安卓应用A注册的安卓应用A的包名和包签名,对待验证的安卓应用A的包名和包签名进行验证,若验证成功,则执行211,否则,结束流程。
具体地,若待验证的安卓应用A的包名和包签名与安卓应用A注册的安卓应用A的包名和包签名一致,则说明验证成功;若待验证的安卓应用A的包名和包签名与安卓应用A注册的安卓应用A的包名和包签名不一致,则说明验证失败
211、开放平台根据安卓应用A的应用ID,以及安卓应用A的其他相关信息,生成访问令牌。
生成访问令牌的详细描述具体可以参见现有技术中的相关内容,此处不再赘述。
212、开放平台向安卓应用A发送所述访问令牌。
至此,安卓应用A获得开放平台所提供的访问令牌,在安卓应用A每次调用开放平台所提供的开放API时,都需要携带这个访问令牌,以供开放平台能够根据该访问令牌,向安卓应用A提供相应的访问权限。
本实施例中,通过获取应用的身份标识信息,进而对所述身份标识信息进行加密处理,以获得所述应用的加密信息,并向开放平台发送所述加密信息和所述应用的应用标识信息,使得能够接收所述开放平台发送的访问令牌,用以调用所述开放平台所提供的开放API,由于没有传输明文的验证参数,从而提高了安全平台的调用的安全性。
另外,采用本发明提供的技术方案,由于没有传输明文的密钥信息,能够避免由于验证参数泄露而导致的安全问题,能够进一步提高安全平台的调用的安全性。
另外,采用本发明提供的技术方案,应用和应用所对应的服务器无需存储密钥信息,能够避免由于验证参数泄露而导致的安全问题,能够进一步提高安全平台的调用的安全性。
另外,采用本发明提供的技术方案,通过利用C语言库接口或C++语言库接口,直接调用操作系统所提供的接口,来获得应用的身份标识信息,使得恶意的应用无法伪造身份标识信息,能够避免由于恶意的应用伪造身份标识信息而导致的安全问题,能够进一步提高安全平台的调用的安全性。
另外,采用本发明提供的技术方案,由于利用C语言库接口或C++语言库接口,实现加密处理所需要的对象即应用的身份标识信息,的获取,攻击者想要完全破解的难度相当大,能够进一步提高安全平台的调用的安全性。
另外,采用本发明提供的技术方案,由于除了加密信息和应用的应用标识信息之外,还进一步将当前的网络时间戳作为验证参数,发送给开放平台,以共同参与开放平台对加密信息的验证操作,使得攻击者无法通过重放验证参数来通过验证,能够避免由于攻击者利用重放验证参数而导致的安全问题,能够进一步提高安全平台的调用的安全性。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
图3为本发明另一实施例提供的开放平台的调用装置的结构示意图,如图3所示。本实施例的开放平台的调用装置可以包括获取单元31、加密单元32、发送单元33和接收单元34。其中,获取单元31,用于获取应用的身份标识信息;加密单元32,用于对所述身份标识信息进行加密处理,以获得所述应用的加密信息;发送单元33,用于向开放平台发送所述加密信息和所述应用的应用标识信息;接收单元34,用于接收所述开放平台发送的访问令牌,用以调用所述开放平台所提供的开放API,所述访问令牌为所述开放平台利用应用注册的身份标识信息,对待验证的身份标识信息进行验证成功之后获得的,所述应用注册的身份标识信息为所述开放平台根据所述应用标识信息获得的,所述待验证的身份标识信息为所述开放平台对所述加密信息进行解密处理获得的。
需要说明的是,本实施例所提供的开放平台的调用装置可以为位于本地终端的应用,或者还可以为位于本地终端的应用中的插件或软件开发工具包(Software Development Kit,SDK)等功能单元,这些功能单元具体可以由一系列编程语言代码和编程语言代码所实现的库(例如,LIB库等)组成,本实施例对此不进行特别限定。
可以理解的是,所述应用可以是安装在终端上的应用程序(nativeApp),或者还可以是终端上的浏览器的一个网页程序(webApp),本实施例对此不进行限定。
其中,所述身份标识信息可以包括但不限于包名和包签名中的至少一项,本实施例对此不进行特别限定。
可选地,在本实施例的一个可能的实现方式中,所述获取单元31,具体可以用于调用所述应用所提供的接口,以获得所述身份标识信息。
具体地,所述获取单元31,具体可以用于调用所述应用的Java语言库接口;采用JNI技术,调用所述应用的C语言库接口或C++语言库接口,以调用所述操作系统所提供的接口,以获得所述身份标识信息。
可选地,在本实施例的一个可能的实现方式中,所述获取单元31,还可以进一步用于获取当前的网络时间戳。
相应地,所述加密单元32,具体可以用于对所述身份标识信息和所述网络时间戳进行加密处理,以获得所述加密信息;所述发送单元33,具体可以用于向所述开放平台发送所述应用的应用标识信息、所述网络时间戳和所述加密信息;所述应用注册的身份标识信息具体为所述开放平台根据所述网络时间戳和所述应用标识信息获得的,所述网络时间戳和所述待验证的身份标识信息为所述开放平台对所述加密信息进行解密处理获得的。
需要说明的是,图1对应的实施例中方法,可以由本实施例提供的开放平台的调用装置实现。详细描述可以参见图1对应的实施例中的相关内容,此处不再赘述。
本实施例中,通过获取单元获取应用的身份标识信息,进而由加密单元对所述身份标识信息进行加密处理,以获得所述应用的加密信息,并由发送单元向开放平台发送所述加密信息和所述应用的应用标识信息,使得接收单元能够接收所述开放平台发送的访问令牌,用以调用所述开放平台所提供的开放API,由于没有传输明文的验证参数,从而提高了安全平台的调用的安全性。
另外,采用本发明提供的技术方案,由于没有传输明文的密钥信息,能够避免由于验证参数泄露而导致的安全问题,能够进一步提高安全平台的调用的安全性。
另外,采用本发明提供的技术方案,应用和应用所对应的服务器无需存储密钥信息,能够避免由于验证参数泄露而导致的安全问题,能够进一步提高安全平台的调用的安全性。
另外,采用本发明提供的技术方案,通过利用C语言库接口或C++语言库接口,直接调用操作系统所提供的接口,来获得应用的身份标识信息,使得恶意的应用无法伪造身份标识信息,能够避免由于恶意的应用伪造身份标识信息而导致的安全问题,能够进一步提高安全平台的调用的安全性。
另外,采用本发明提供的技术方案,由于利用C语言库接口或C++语言库接口,实现加密处理所需要的对象即应用的身份标识信息,的获取,攻击者想要完全破解的难度相当大,能够进一步提高安全平台的调用的安全性。
另外,采用本发明提供的技术方案,由于除了加密信息和应用的应用标识信息之外,还进一步将当前的网络时间戳作为验证参数,发送给开放平台,以共同参与开放平台对加密信息的验证操作,使得攻击者无法通过重放验证参数来通过验证,能够避免由于攻击者利用重放验证参数而导致的安全问题,能够进一步提高安全平台的调用的安全性。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本发明所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机装置(可以是个人计算机,服务器,或者网络装置等)或处理器(processor)执行本发明各个实施例所述方法的部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (10)
1.一种开放平台的调用方法,其特征在于,包括:
获取应用的身份标识信息;
对所述身份标识信息进行加密处理,以获得所述应用的加密信息;
向开放平台发送所述加密信息和所述应用的应用标识信息;
接收所述开放平台发送的访问令牌,用以调用所述开放平台所提供的开放API,所述访问令牌为所述开放平台利用应用注册的身份标识信息,对待验证的身份标识信息进行验证成功之后获得的,所述应用注册的身份标识信息为所述开放平台根据所述应用标识信息获得的,所述待验证的身份标识信息为所述开放平台对所述加密信息进行解密处理获得的。
2.根据权利要求1所述的方法,其特征在于,所述获取应用的身份标识信息,包括:
调用所述应用所提供的接口,以获得所述身份标识信息。
3.根据权利要求2所述的方法,其特征在于,所述调用所述应用所提供的接口,以获得所述身份标识信息,包括:
调用所述应用的Java语言库接口;采用JNI技术,调用所述应用的C语言库接口或C++语言库接口,以调用所述操作系统所提供的接口,以获得所述身份标识信息。
4.根据权利要求1所述的方法,其特征在于,所述身份标识信息包括包名和包签名中的至少一项。
5.根据权利要求1~4任一权利要求所述的方法,其特征在于,所述对所述身份标识信息进行加密处理,以获得所述应用的加密信息之前,还包括:
获取当前的网络时间戳;
所述对所述身份标识信息进行加密处理,以获得所述应用的加密信息,包括:
对所述身份标识信息和所述网络时间戳进行加密处理,以获得所述加密信息;
所述向开放平台发送所述加密信息和所述应用的应用标识信息,包括:
向所述开放平台发送所述应用的应用标识信息、所述网络时间戳和所述加密信息;
所述应用注册的身份标识信息具体为所述开放平台根据所述网络时间戳和所述应用标识信息获得的,所述网络时间戳和所述待验证的身份标识信息为所述开放平台对所述加密信息进行解密处理获得的。
6.一种开放平台的调用装置,其特征在于,包括:
获取单元,用于获取应用的身份标识信息;
加密单元,用于对所述身份标识信息进行加密处理,以获得所述应用的加密信息;
发送单元,用于向开放平台发送所述加密信息和所述应用的应用标识信息;
接收单元,用于接收所述开放平台发送的访问令牌,用以调用所述开放平台所提供的开放API,所述访问令牌为所述开放平台利用应用注册的身份标识信息,对待验证的身份标识信息进行验证成功之后获得的,所述应用注册的身份标识信息为所述开放平台根据所述应用标识信息获得的,所述待验证的身份标识信息为所述开放平台对所述加密信息进行解密处理获得的。
7.根据权利要求6所述的装置,其特征在于,所述获取单元,具体用于
调用所述应用所提供的接口,以获得所述身份标识信息。
8.根据权利要求7所述的装置,其特征在于,所述获取单元,具体用于
调用所述应用的Java语言库接口;采用JNI技术,调用所述应用的C语言库接口或C++语言库接口,以调用所述操作系统所提供的接口,以获得所述身份标识信息。
9.根据权利要求6所述的装置,其特征在于,所述身份标识信息包括包名和包签名中的至少一项。
10.根据权利要求6~9任一权利要求所述的装置,其特征在于,
所述获取单元,还用于
获取当前的网络时间戳;
所述加密单元,具体用于
对所述身份标识信息和所述网络时间戳进行加密处理,以获得所述加密信息;
所述发送单元,具体用于
向所述开放平台发送所述应用的应用标识信息、所述网络时间戳和所述加密信息;
所述应用注册的身份标识信息具体为所述开放平台根据所述网络时间戳和所述应用标识信息获得的,所述网络时间戳和所述待验证的身份标识信息为所述开放平台对所述加密信息进行解密处理获得的。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410428908.2A CN104199657B (zh) | 2014-08-27 | 2014-08-27 | 开放平台的调用方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410428908.2A CN104199657B (zh) | 2014-08-27 | 2014-08-27 | 开放平台的调用方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104199657A true CN104199657A (zh) | 2014-12-10 |
CN104199657B CN104199657B (zh) | 2018-10-16 |
Family
ID=52084954
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410428908.2A Active CN104199657B (zh) | 2014-08-27 | 2014-08-27 | 开放平台的调用方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104199657B (zh) |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105187449A (zh) * | 2015-09-30 | 2015-12-23 | 北京恒华伟业科技股份有限公司 | 一种接口调用方法及装置 |
CN105844150A (zh) * | 2016-03-23 | 2016-08-10 | 青岛海信传媒网络技术有限公司 | 一种应用程序的数据保护方法和装置 |
CN106022098A (zh) * | 2016-05-10 | 2016-10-12 | 青岛海信传媒网络技术有限公司 | 一种应用程序的签名验证方法和装置 |
CN109840400A (zh) * | 2017-11-24 | 2019-06-04 | Inka 安特沃客有限公司 | 提供安全性的设备和方法以及针对通用中间语言执行安全性的设备和方法 |
CN110290102A (zh) * | 2019-04-26 | 2019-09-27 | 武汉众邦银行股份有限公司 | 基于应用的业务安全系统及方法 |
CN110290205A (zh) * | 2019-06-26 | 2019-09-27 | 贝壳技术有限公司 | 服务接口管理方法及装置 |
WO2019201294A1 (zh) * | 2018-04-20 | 2019-10-24 | 比亚迪股份有限公司 | 车辆及其基于开放平台的车辆安全控制方法、系统 |
CN111767537A (zh) * | 2020-06-23 | 2020-10-13 | 平安普惠企业管理有限公司 | 基于ios操作系统的应用程序的篡改校验方法及相关设备 |
CN113094660A (zh) * | 2021-04-02 | 2021-07-09 | 上海中通吉网络技术有限公司 | 接口调用的方法、装置及设备、存储介质 |
CN114157996A (zh) * | 2021-11-09 | 2022-03-08 | 天津七一二移动通信有限公司 | 一种基于lte的无线调度台的实现方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102378170A (zh) * | 2010-08-27 | 2012-03-14 | 中国移动通信有限公司 | 一种鉴权及业务调用方法、装置和系统 |
CN103281187A (zh) * | 2013-05-17 | 2013-09-04 | 北京网秦天下科技有限公司 | 安全认证方法、设备和系统 |
CN103701761A (zh) * | 2012-09-28 | 2014-04-02 | 中国电信股份有限公司 | 开放接口调用的认证方法与系统 |
US20140177839A1 (en) * | 2012-12-21 | 2014-06-26 | Mobile Iron, Inc. | Secure app-to-app communication |
-
2014
- 2014-08-27 CN CN201410428908.2A patent/CN104199657B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102378170A (zh) * | 2010-08-27 | 2012-03-14 | 中国移动通信有限公司 | 一种鉴权及业务调用方法、装置和系统 |
CN103701761A (zh) * | 2012-09-28 | 2014-04-02 | 中国电信股份有限公司 | 开放接口调用的认证方法与系统 |
US20140177839A1 (en) * | 2012-12-21 | 2014-06-26 | Mobile Iron, Inc. | Secure app-to-app communication |
CN103281187A (zh) * | 2013-05-17 | 2013-09-04 | 北京网秦天下科技有限公司 | 安全认证方法、设备和系统 |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105187449B (zh) * | 2015-09-30 | 2018-10-02 | 北京恒华伟业科技股份有限公司 | 一种接口调用方法及装置 |
CN105187449A (zh) * | 2015-09-30 | 2015-12-23 | 北京恒华伟业科技股份有限公司 | 一种接口调用方法及装置 |
CN105844150A (zh) * | 2016-03-23 | 2016-08-10 | 青岛海信传媒网络技术有限公司 | 一种应用程序的数据保护方法和装置 |
CN106022098A (zh) * | 2016-05-10 | 2016-10-12 | 青岛海信传媒网络技术有限公司 | 一种应用程序的签名验证方法和装置 |
CN109840400B (zh) * | 2017-11-24 | 2023-09-29 | Inka 安特沃客有限公司 | 提供安全性的设备和方法以及针对通用中间语言执行安全性的设备和方法 |
CN109840400A (zh) * | 2017-11-24 | 2019-06-04 | Inka 安特沃客有限公司 | 提供安全性的设备和方法以及针对通用中间语言执行安全性的设备和方法 |
WO2019201294A1 (zh) * | 2018-04-20 | 2019-10-24 | 比亚迪股份有限公司 | 车辆及其基于开放平台的车辆安全控制方法、系统 |
US11916884B2 (en) | 2018-04-20 | 2024-02-27 | Byd Company Limited | Vehicle and vehicle security control method and system based on open platform |
CN110290102A (zh) * | 2019-04-26 | 2019-09-27 | 武汉众邦银行股份有限公司 | 基于应用的业务安全系统及方法 |
CN110290205A (zh) * | 2019-06-26 | 2019-09-27 | 贝壳技术有限公司 | 服务接口管理方法及装置 |
CN111767537A (zh) * | 2020-06-23 | 2020-10-13 | 平安普惠企业管理有限公司 | 基于ios操作系统的应用程序的篡改校验方法及相关设备 |
CN113094660A (zh) * | 2021-04-02 | 2021-07-09 | 上海中通吉网络技术有限公司 | 接口调用的方法、装置及设备、存储介质 |
CN114157996A (zh) * | 2021-11-09 | 2022-03-08 | 天津七一二移动通信有限公司 | 一种基于lte的无线调度台的实现方法 |
Also Published As
Publication number | Publication date |
---|---|
CN104199657B (zh) | 2018-10-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104199657A (zh) | 开放平台的调用方法及装置 | |
CN104199654A (zh) | 开放平台的调用方法及装置 | |
US11258792B2 (en) | Method, device, system for authenticating an accessing terminal by server, server and computer readable storage medium | |
KR20180093038A (ko) | 신뢰 실행 환경을 갖는 모바일 디바이스 | |
CN113572715B (zh) | 基于区块链的数据传输方法和系统 | |
CN112333198A (zh) | 安全跨域登录方法、系统及服务器 | |
JP6880071B2 (ja) | コピー攻撃を防ぐための処理方法並びにサーバ及びクライアント | |
CN105491001A (zh) | 一种安全通讯方法和装置 | |
CN103095457A (zh) | 一种应用程序的登录、验证方法 | |
CN111200589A (zh) | 一种联盟链的数据保护方法及系统 | |
US20180204004A1 (en) | Authentication method and apparatus for reinforced software | |
CN113553572B (zh) | 资源信息获取方法、装置、计算机设备和存储介质 | |
CN110069241B (zh) | 伪随机数的获取方法、装置、客户端设备和服务器 | |
CN111131416A (zh) | 业务服务的提供方法和装置、存储介质、电子装置 | |
CN105871805A (zh) | 防盗链的方法及装置 | |
CN111585995B (zh) | 安全风控信息传输、处理方法、装置、计算机设备及存储介质 | |
CN103592927A (zh) | 一种通过license绑定产品服务器及业务功能的方法 | |
Ahmad et al. | Enhancing the security of mobile applications by using TEE and (U) SIM | |
CN111259382A (zh) | 恶意行为识别方法、装置、系统和存储介质 | |
CN105743651A (zh) | 芯片安全域的卡应用使用方法、装置和应用终端 | |
US10262161B1 (en) | Secure execution and transformation techniques for computing executables | |
CN105574720A (zh) | 安全的信息处理方法以及信息处理装置 | |
CN105792167A (zh) | 一种初始化可信执行环境的方法及装置、设备 | |
CN103336918A (zh) | 电子盘系统授权方法和装置 | |
KR101286767B1 (ko) | 동적 해싱을 이용한 애플리케이션 프로그램 검증 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |