CN103617394A - Sdk提供和调用方法及相关设备 - Google Patents

Sdk提供和调用方法及相关设备 Download PDF

Info

Publication number
CN103617394A
CN103617394A CN201310647814.XA CN201310647814A CN103617394A CN 103617394 A CN103617394 A CN 103617394A CN 201310647814 A CN201310647814 A CN 201310647814A CN 103617394 A CN103617394 A CN 103617394A
Authority
CN
China
Prior art keywords
sdk
application
message digest
eap
host
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
Application number
CN201310647814.XA
Other languages
English (en)
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.)
Beijing Netqin Technology Co Ltd
Original Assignee
Beijing Netqin Technology 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 Beijing Netqin Technology Co Ltd filed Critical Beijing Netqin Technology Co Ltd
Priority to CN201310647814.XA priority Critical patent/CN103617394A/zh
Publication of CN103617394A publication Critical patent/CN103617394A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • G06F21/121Restricting unauthorised execution of programs
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic 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/3247Cryptographic 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
    • H04L9/3249Cryptographic 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 using RSA or related signature schemes, e.g. Rabin scheme

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Technology Law (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Storage Device Security (AREA)

Abstract

本发明提供了一种软件开发工具包SDK提供方法和设备,用于由SDK提供方向应用开发方提供SDK。该方法包括以下步骤:从应用开发方接收与应用开发方中的应用相关的信息;根据接收到的信息计算针对该应用的消息摘要;利用不对称加密算法的私钥将该消息摘要加密以生成数字签名;将数字签名和不对称加密算法的公钥打包到SDK中;以及将打包后的SDK发送给应用开发方,以供该应用调用SDK。本发明还提供了一种SDK调用方法和设备。

Description

SDK提供和调用方法及相关设备
技术领域
本发明总体上涉及数据通信技术领域,更具体地涉及一种SDK(Software Development Kit,软件开发工具包)提供方法及实现该方法的设备,以及一种SDK调用方法及实现该方法的设备。
背景技术
在移动互联网盛行的今天,许多公司通过开发平台的方式,将自身公司的能力或资源,开放出来。以客户端为例,一般通过SDK的方式,将自身的能力开放出来。
SDK是一些被软件工程师用于为特定的软件包、软件框架、硬件平台、操作***等创建应用软件的开发工具的集合。它可以简单地为某个程序设计语言提供API(Application Program Interface,应用程序接口)的一些文件,但也可能包括能与某种嵌入式***通信的复杂的硬件。一般的工具包括用于调试和其他用途的实用工具。SDK还经常包括示例代码、支持性的技术注解或者其他的为基本参考资料澄清疑点的支持文档。
为了鼓励开发者使用其***或者语言,许多SDK是免费提供的。第三方开发者通常可以从目标***开发者那里获得SDK,也可以直接从互联网下载,有时也被作为营销手段。例如,营销公司会免费提供构件SDK以鼓励人们使用它,从而会吸引更多人由于能免费为其编程而购买其构件。
第三方开发者可以通过在自己的应用中嵌入SDK的方式来使用SDK中的功能。在本文中,将SDK旨在被嵌入到的应用称为宿主应用。换句话说,宿主应用表示初始请求调用SDK的应用。
然而,SDK在带来开放便利的同时,也带来了安全隐患。具体地,SDK在传播过程中,如果没有任何安全措施的话,有可能被恶意使用,从而带来不良后果。
为此,现在一般是通过分配应用ID的方式来确定SDK对应的应用。具体地,这种方式一般是在第三方开发者需要嵌入某一SDK时,首先向该SDK的提供商提交其应用相关的资料,提供商审核通过后,向该应用分配一个唯一的专用ID(形式可能为一个ID;也可能是一个键值对),最后第三方开发者在调用SDK时,使用该ID作为参数,就可以使用SDK的相关功能了。
这种方式只能解决应用的识别问题。也就是说,只有合法的ID请求,才能使用SDK的功能。然而,如果该ID被另外一个或多个应用嵌入,则这种方式不能识别这种情况。如果该SDK被恶意使用,对于需要与提供商的服务器交互的SDK,将导致服务器受到恶意攻击。
发明内容
为了解决上述问题,本发明提出了将SDK与宿主应用绑定的数字签名机制。利用该机制,第三方开发者在开发某个应用时,首先验证该应用调用SDK的合法性,从而解决了SDK分发后可能被恶意嵌入等诸如此类的问题。
根据本发明的一方面,提供了一种SDK提供方法,用于由SDK提供方向应用开发方提供SDK。该SDK提供方法包括以下步骤:从应用开发方接收与应用开发方中的应用相关的信息;根据接收到的信息计算针对该应用的消息摘要;利用不对称加密算法的私钥将该消息摘要加密以生成数字签名;将数字签名和不对称加密算法的公钥打包到SDK中;以及将打包后的SDK发送给应用开发方,以供该应用调用SDK。
在一些实施例中,该不对称加密算法是RSA算法。
在一些实施例中,与该应用相关的信息包括该应用的名称和版本。
在一些实施例中,针对该应用的消息摘要是利用SHAl算法计算的。
根据本发明的另一方面,提供了一种SDK调用方法,用于由应用开发方在目标应用中调用针对宿主应用的SDK。该SDK调用方法包括以下步骤:从SDK提供方接收针对宿主应用的SDK;从SDK中读取针对宿主应用的数字签名和不对称加密算法的公钥;通过公钥对该数字签名进行解密,以得到针对宿主应用的第一消息摘要,其中该数字签名是利用不对称加密算法的私钥对第一消息摘要加密生成的;根据与目标应用相关的信息,计算针对目标应用的第二消息摘要;将第一消息摘要与第二消息摘要进行比较;以及如果第一消息摘要与第二消息摘要相同,则确定目标应用是宿主应用,并且允许目标应用调用SDK。
在一些实施例中,该SDK调用方法还包括:如果第一消息摘要与第二消息摘要不相同,则确定目标应用不是宿主应用,并且不允许目标应用调用SDK。
在一些实施例中,与目标应用相关的信息包括目标应用的名称和版本。
在一些实施例中,该不对称加密算法是RSA算法。
在一些实施例中,该第一消息摘要和/或第二消息摘要是利用SHAl算法计算的。
根据本发明的又一方面,提供了一种SDK提供设备,用于由SDK提供方向应用开发方提供SDK。该SDK提供没备包括:接收单元,用于从应用开发方接收与应用开发方中的应用相关的信息;消息摘要计算单元,用于根据接收到的信息计算针对该应用的消息摘要;数字签名生成单元,用于利用不对称加密算法的私钥将该消息摘要加密以生成数字签名;打包单元,用于将数字签名和不对称加密算法的公钥打包到SDK中;以及发送单元,用于将打包后的SDK发送给应用开发方,以供该应用调用SDK。
在一些实施例中,该不对称加密算法是RSA算法。
在一些实施例中,与该应用相关的信息包括该应用的名称和版本。
在一些实施例中,该消息摘要计算单元利用SHAl算法计算该消息摘要。
根据本发明的另一方面,提供了一种SDK调用设备,用于由应用开发方在目标应用中调用针对宿主应用的SDK。该SDK调用设备包括:接收单元,用于从SDK提供方接收针对宿主应用的SDK;读取单元,用于从SDK中读取针对宿主应用的数字签名和不对称加密算法的公钥;解密单元,用于通过公钥对该数字签名进行解密,以得到针对宿主应用的第一消息摘要,其中该数字签名是利用不对称加密算法的私钥对第一消息摘要加密生成的;消息摘要计算单元,用于根据与目标应用相关的信息,计算针对目标应用的第二消息摘要;比较单元,用于将第一消息摘要与第二消息摘要进行比较;以及调用单元,用于如果第一消息摘要与第二消息摘要相同,则确定目标应用是宿主应用,并且允许目标应用调用SDK。
在一些实施例中,该调用单元还用于:如果第一消息摘要与第二消息摘要不相同,则确定目标应用不是宿主应用,并且不允许目标应用调用SDK。
在一些实施例中,与目标应用相关的信息包括目标应用的名称和版本。
在一些实施例中,不对称加密算法是RSA算法。
在一些实施例中,消息摘要计算单元利用SHAl算法计算第二消息摘要,和/或第一消息摘要是利用SHAl算法计算的。
使用本发明的方法和设备,通过将SDK与宿主应用的数字签名绑定,可以有效地防止SDK被宿主应用以外的其他应用恶意使用。
附图说明
通过下面结合附图说明本发明的优选实施例,将使本发明的上述及其它目标、特征和优点更加清楚,其中:
图1是示出了根据本发明实施例的SDK提供和调用***100的框图。
图2是示出了根据本发明实施例的SDK提供和调用***100的操作的时序图200。
图3是示出了根据本发明实施例的SDK提供方法300的流程图。
图4是示出了根据本发明实施例的SDK提供设备400的框图。
图5是示出了根据本发明实施例的SDK调用方法500的流程图。
图6是示出了根据本发明实施例的SDK调用设备600的框图。
在本发明的所有附图中,相同或相似的结构均以相同或相似的附图标记标识。
具体实施方式
下面参照附图对本发明的优选实施例进行详细说明,在描述过程中省略了对于本发明来说是不必要的细节和功能,以防止对本发明的理解造成混淆。本发明可以应用于移动通信***、固定通信***、有线通信***,或者应用于无线移动通信***、固定通信***、有线通信***等的任意混合结构。就移动通信***而言,本发明并不局限于所涉及的各个移动通信终端的具体通信协议,可以包括(但不限于)2G、3G、4G、5G网络,WCDMA、CDMA2000、TD-SCDMA***等,不同的移动终端可以采用相同的通信协议,也可以采用不同的通信协议。本发明并不局限于移动终端的具体操作***,可以包括(但不限于)iOS、Windows Mobile、Symbian、Android等。本发明也不受限于具体使用的硬件、软件(包括操作***)、固件、或它们的组合等。
图1是示出了根据本发明的SDK提供和调用***100的框图。如图1所示,SDK提供和调用***100可以包括应用开发方110和SDK提供方120。应用开发方110和SDK提供方120可以通过通信网络130相连。例如,应用开发方110可以是移动终端(例如,移动电话、个人数字助理(PDA)、手持计算机、膝上型计算机、平板电脑等)或固定终端(例如,台式机、工作站、服务器等)。SDK提供方120可以是SDK提供商的服务器等。通信网络130可以是有线的或无线的。具体地,通信网络130的示例可以包括(但不限于):有线电缆或光纤型网络、或者移动或蜂窝网络或WLAN(“无线局域网”,可能是802.11(或WiFi)或者WiMAX型的)、或者还可能是蓝牙型的无线短距离通信网络。
应用开发方110包括安装在其中的应用开发客户端111,用于向SDK提供方120请求在某个应用中调用SDK,从SDK提供方120接收SDK,对接收到的SDK进行验证并在该应用中调用SDK。应用开发客户端111可以由应用开发方110的用户A(也可以称为第三方)以软件的形式自行安装在应用开发方中,或者可以由应用开发方110的生产厂商以硬件或固件的形式安装在应用开发方110中。
用户A是应用开发方110的所有者或使用者。用户A可以在应用开发方110上通过应用开发客户端111开发某个应用。
图2是示出了根据本发明实施例的SDK提供和调用***100的操作的时序图200。如图2所示,该操作主要涉及应用开发方110(即,其上的应用开发客户端111)和SDK提供方120。
在步骤S201,应用开发客户端111向SDK提供方120发送SDK请求。具体地,该SDK请求涉及应用开发客户端111上的某个应用(即,宿主应用)请求调用(或嵌入)SDK,并且包括与该宿主应用相关的信息。例如,与该宿主应用相关的信息可以包括该宿主应用的名称和版本。
在接收到SDK请求之后,SDK提供方120根据接收到的与该宿主应用相关的信息来计算针对该宿主应用的第一消息摘要(步骤S203)。例如,SDK提供方120可以根据SHAl算法,将该宿主应用的名称和版本计算为第一消息摘要。本领域技术人员应理解,SHAl算法以外的其他数字签名算法也适用于本发明。
在步骤S205,SDK提供方120通过诸如RSA算法之类的不对称加密算法来对第一消息摘要进行加密,以生成数字签名。具体地,SDK提供方120可以利用RSA算法生成一对秘钥:公钥记为PK,私钥记为SK,长度为1024位。然后,SDK提供方120利用私钥SK对第一消息摘要进行加密,以得到加密后的数据(例如,可以记为SIG)作为该SDK针对该宿主应用的数字签名。
在步骤S207,SDK提供方120将公钥PK和数字签名一起打包到SDK中。例如,可以将公钥PK和通过私钥加密后的数据SIG写入到文件中。一个示例记录方式为:前面1024位为公钥PK,紧跟着为SIG。为方便起见,可以将该文件命名为例如signature.sig,然后将其打包到SDK中。
在步骤S209,SDK提供方120将打包后的SDK发送给应用开发客户端111,应用开发客户端111接收打包后的SDK。
在步骤S211,应用开发客户端111从接收到的打包后的SDK中读取针对宿主应用的数字签名和不对称加密算法的公钥。
在步骤S213,应用开发客户端111通过公钥对该数字签名进行解密,以得到针对宿主应用的第一消息摘要。
在步骤S215,应用开发客户端111根据与要调用该SDK的应用(这里称为目标应用)相关的信息,计算针对该目标应用的第二消息摘要。例如,与该目标应用相关的信息包括该目标应用的名称和版本。在这种情况下,应用开发客户端111可以根据例如SHAl算法,将该目标应用的名称和版本计算为第二消息摘要。
本领域技术人员应理解的是,尽管图2示意了步骤S215发生在步骤S211和S213之后,然而本发明并不局限于此。具体地,本发明同样适用于步骤S215发生在步骤S211和S213之前,或者与S211和S213中任一个步骤同时发生。
在步骤S217,应用开发客户端111将针对宿主应用的第一消息摘要与针对目标应用的第二消息摘要进行比较。
如果二者相同,则应用开发客户端111在步骤S219中确定目标应用就是宿主应用,并允许该目标应用调用SDK。如果二者不相同,则应用开发客户端111在步骤S221确定目标应用不是宿主应用,并且不允许该目标应用调用SDK。
根据上述操作,本发明可以防止SDK的宿主应用以外的其他应用使用SDK,从而有效地防止SDK被恶意使用。
下面,将举例说明根据本发明的SDK提供和调用***100的操作。
假设应用开发客户端111上有一款应用(即,宿主应用)需要嵌入SDK。在这种情况下,应用开发客户端111向SDK提供方120提交的SDK请求中可以包含如下申请信息:
-该宿主应用的名称:测试应用A
-该宿主应用的版本:1.0.1
-开发商:移动应用开发者A
SDK提供方120将该宿主应用的名称和版本连接为一个字符串,即,测试应用A1.0.1,并通过SHAl算法计算出其消息摘要A为:
705FE6202AFA5C2B715AB5EOA4421B30C4C43E85。
接下来,SDK提供方120通过RSA算法,将该消息摘要A进行加密,得到一个数字签名。具体地,SDK提供方120可以利用RSA算法生成一对秘钥:公钥记为PK,私钥记为SK,长度为1024位。然后,SDK提供方120将上述得到的消息摘要A通过私钥SK进行加密,得到加密后的数据,作为该SDK针对该宿主应用的数字签名(记为SIG)。接下来,SDK提供方120将公钥PK和通过私钥SK加密后的数据SIG写入到文件中。例如,具体的记录方式可以是:前面1024位为公钥PK,紧跟着为SIG。为方便起见,可以将该文件命名为signature.sig。然后,SDK提供方120将该文件打包到SDK中。最后,SDK提供方120将打包后的SDK发送给应用开发客户端111。
应用开发客户端111在接收到打包后的SDK后,可以对要调用该SDK的应用(即,目标应用)进行验证。具体地,应用开发客户端111可以获取目标应用的名称和版本等相关信息,并基于此计算针对该目标应用的消息摘要B。与此同时(或者在此之前或之后),应用开发客户端111可以从接收到的打包后的SDK中读取数字签名SIG和公钥PK,并通过公钥PK从SIG中解密出消息摘要A。然后,应用开发客户端111将消息摘要A与消息摘要B进行比较,以确定该目标应用是否为宿主应用。如果比较结果显示消息摘要A与消息摘要B相同,则应用开发客户端111确定该目标应用就是宿主应用,并且应用开发客户端111允许该目标应用调用SDK。否则,可以确定目标应用不是宿主应用,并且应用开发客户端111不允许该目标应用调用SDK。
应用开发客户端111的上述验证过程可以由SDK提供方120预先定义为如下的函数:
public boolean sdkBundled(),其内部实现流程如图2左侧的流程所不。
应用开发客户端111可以在SDK的入口处,调用sdkBundled(),以完成上述的验证过程。
图3是示出了根据本发明实施例的SDK提供方法300的流程图。如图3所示,SDK提供方法300可以包括步骤S310、S320、S330、S340和S350,其中,部分步骤可以单独执行或组合执行,以及可以并行执行或顺序执行,并不局限于图3所示的具体操作顺序。在一些实施例中,SDK提供方法300可以由图4所示的SDK提供设备400来执行。在一些实施例中,SDK提供方法300可以在图1所示的SDK提供方120处执行。
图4是示出了根据本发明实施例的SDK提供设备400的框图。如图4所示,SDK提供设备400可以包括:接收单元410、消息摘要计算单元420、数字签名生成单元430、打包单元440和发送单元450。在一些实施例中,SDK提供设备400可以在图1所示的SDK提供方120处实现。
接收单元410用于从应用开发方接收与应用开发方中的应用相关的信息。这里的应用指代SDK的宿主应用,即,初始请求调用SDK的应用。例如,与宿主应用相关的信息可以包括该应用的名称和版本。在一些实施例中,接收单元410可以是SDK提供设备400的中央处理单元(CPU)、数字信号处理器(DSP)、微处理器、微控制器等等,其可以与SDK提供设备400的收发信机等相配合,以从应用开发方接收与应用开发方中的应用相关的信息。
消息摘要计算单元420用于根据接收到的信息计算针对该应用的消息摘要。例如,消息摘要计算单元420可以利用SHAl算法来计算该消息摘要。在一些实施例中,消息摘要计算单元420可以是SDK提供设备400的中央处理单元(CPU)、数字信号处理器(DSP)、微处理器、微控制器等等,其可以与SDK提供设备400的存储器(例如,硬盘、软盘、光盘、RAM、闪存等等)相配合,以根据接收到的信息计算针对该应用的消息摘要。
数字签名生成单元430用于利用不对称加密算法的私钥将该消息摘要加密以生成数字签名。例如,该不对称加密算法是RSA算法。在一些实施例中,数字签名生成单元430可以是SDK提供设备400的中央处理单元(CPU)、数字信号处理器(DSP)、微处理器、微控制器等等,其可以与SDK提供设备400的存储器(例如,硬盘、软盘、光盘、RAM、闪存等等)相配合,以利用不对称加密算法的私钥将该消息摘要进行加密以生成数字签名。
打包单元440用于将数字签名和不对称加密算法的公钥打包到SDK中。在一些实施例中,打包单元440可以是SDK提供设备400的中央处理单元(CPU)、数字信号处理器(DSP)、微处理器、微控制器等等,其可以与SDK提供设备400的存储器(例如,硬盘、软盘、光盘、RAM、闪存等等)相配合,以将数字签名和不对称加密算法的公钥打包到SDK中。
发送单元450用于将打包后的SDK发送给应用开发方,以供该应用调用SDK。在一些实施例中,发送单元450可以是SDK提供设备400的中央处理单元(CPU)、数字信号处理器(DSP)、微处理器、微控制器等等,其可以与SDK提供设备400的收发信机等相配合,以将打包后的SDK发送给应用开发方,以供该应用调用SDK。
应注意,该SDK提供设备400中的两个或多个不同单元可以在逻辑上或物理上组合在一起。例如,接收单元410和发送单元450可以组合成一个单元,由SDK提供设备400中的中央处理单元(CPU)、数字信号处理器(DSP)、微处理器、微控制器等等与SDK提供设备400的收发信机等相配合来统一实现。
以下将结合图3和图4,对根据本发明实施例的SDK提供方法300和SDK提供设备400进行详细的描述。
在步骤S310,可以由SDK提供设备400的接收单元410从应用开发方接收与应用开发方中的应用相关的信息。这里的应用指代SDK的宿主应用,即,初始请求调用SDK的应用。
在步骤S320,可以由SDK提供设备400的消息摘要计算单元420根据接收到的信息计算针对该应用的消息摘要。
在步骤S330,可以由SDK提供设备400的数字签名生成单元430利用不对称加密算法的私钥将该消息摘要加密以生成数字签名。
在步骤S340,可以由SDK提供设备400的打包单元440将数字签名和不对称加密算法的公钥打包到SDK中。
在步骤S350,可以由SDK提供设备400的发送单元450将打包后的SDK发送给应用开发方,以供该应用调用SDK。
在一些实施例中,该不对称加密算法可以是RSA算法。
在一些实施例中,与该应用相关的信息可以包括该应用的名称和版本。
在一些实施例中,该消息摘要计算单元420可以利用SHAl算法计算该消息摘要。
图5是示出了根据本发明实施例的SDK调用方法500的流程图。该SDK调用方法500可以用于由应用开发方在目标应用中调用针对宿主应用的SDK。如图5所示,SDK调用方法500可以包括步骤S510、S520、S530、S540、S550、S560和S570,其中,步骤S570是可选的步骤,并且部分步骤可以单独执行或组合执行,以及可以并行执行或顺序执行,并不局限于图5所示的具体操作顺序。在一些实施例中,SDK调用方法500可以由图6所示的SDK调用设备600来执行。在一些实施例中,SDK调用方法500可以在图1所示的应用开发方110(即,应用开发客户端111)处执行。
图6是示出了根据本发明实施例的SDK调用设备600的框图。SDK调用设备600可以用于由应用开发方在目标应用中调用针对宿主应用的SDK。如图6所示,SDK调用设备600可以包括:接收单元610、读取单元620、解密单元630、消息摘要计算单元640、比较单元650和调用单元660。在一些实施例中,SDK调用设备600可以在图1所示的应用开发方110(即,应用开发客户端111)处实现。
接收单元610用于从SDK提供方接收针对宿主应用的SDK。在一些实施例中,接收单元610可以是SDK调用设备600的中央处理单元(CPU)、数字信号处理器(DSP)、微处理器、微控制器等等,其可以与SDK调用设备600的收发信机等相配合,以从SDK提供方接收针对宿主应用的SDK。
读取单元620用于从SDK中读取针对宿主应用的数字签名和不对称加密算法的公钥。例如,该不对称加密算法是RSA算法。在一些实施例中,读取单元620可以是SDK调用设备600的中央处理单元(CPU)、数字信号处理器(DSP)、微处理器、微控制器等等,其可以与SDK调用设备600的存储器(例如,硬盘、软盘、光盘、RAM、闪存等等)相配合,以从SDK中读取针对宿主应用的数字签名和不对称加密算法的公钥。
解密单元630用于通过公钥对数字签名进行解密,以得到针对宿主应用的第一消息摘要。其中,该数字签名是SDK提供方利用该不对称加密算法的私钥对该第一消息摘要加密生成的。在一些实施例中,解密单元630可以是SDK调用设备600的中央处理单元(CPU)、数字信号处理器(DSP)、微处理器、微控制器等等,其可以与SDK调用设备600的存储器(例如,硬盘、软盘、光盘、RAM、闪存等等)相配合,以通过公钥对数字签名进行解密,以得到针对宿主应用的第一消息摘要。
消息摘要计算单元640用于根据与该目标应用相关的信息,计算针对该目标应用的第二消息摘要。作为一个示例,与该目标应用相关的信息可以包括该目标应用的名称和版本。作为另一个示例,该消息摘要计算单元640可以利用SHAl算法来计算该第二消息摘要。在一些实施例中,消息摘要计算单元640可以是SDK调用设备600的中央处理单元(CPU)、数字信号处理器(DSP)、微处理器、微控制器等等,其可以与SDK调用设备600的存储器(例如,硬盘、软盘、光盘、RAM、闪存等等)相配合,以根据与目标应用相关的信息,计算针对目标应用的第二消息摘要。
比较单元650用于将第一消息摘要与第二消息摘要进行比较。在一些实施例中,比较单元650可以是SDK调用设备600的中央处理单元(CPU)、数字信号处理器(DSP)、微处理器、微控制器等等,其可以与SDK调用设备600的存储器(例如,硬盘、软盘、光盘、RAM、闪存等等)相配合,以将第一消息摘要与第二消息摘要进行比较。
调用单元660用于在第一消息摘要与第二消息摘要相同的情况下确定目标应用是宿主应用,并且允许目标应用调用SDK。备选地,调用单元660还可以用于:如果第一消息摘要与第二消息摘要不相同,则确定目标应用不是宿主应用,并且不允许目标应用调用SDK。在一些实施例中,调用单元660可以是SDK调用设备600的中央处理单元(CPU)、数字信号处理器(DSP)、微处理器、微控制器等等,其可以与SDK调用设备600的存储器(例如,硬盘、软盘、光盘、RAM、闪存等等)相配合,以在第一消息摘要与第二消息摘要相同的情况下允许目标应用调用SDK,以及在第一消息摘要与第二消息摘要不相同的情况下不允许目标应用调用SDK。
应注意,该SDK调用设备600中的两个或多个不同单元可以在逻辑上或物理上组合在一起。例如,解密单元630和消息摘要计算单元640可以组合成一个单元,由SDK调用设备600中的中央处理单元(CPU)、数字信号处理器(DSP)、微处理器、微控制器等等与SDK调用设备600的存储器(例如,硬盘、软盘、光盘、RAM、闪存等等)相配合来统一实现。
以下将结合图5和图6,对根据本发明实施例的SDK调用方法500和SDK调用设备600进行详细的描述。
在步骤S510,可以由SDK调用设备600的接收单元610从SDK提供方接收针对宿主应用的SDK。这里的宿主应用即应用开发方处的向SDK提供方初始请求调用SDK的应用。
在步骤S520,可以由SDK调用设备600的读取单元620从SDK中读取针对宿主应用的数字签名和不对称加密算法的公钥。
在步骤S530,可以由SDK调用设备600的解密单元630通过公钥对该数字签名进行解密,以得到针对宿主应用的第一消息摘要。该数字签名是利用不对称加密算法的私钥对该第一消息摘要加密生成的。
在步骤S540,可以由SDK调用设备600的消息摘要计算单元640根据与目标应用相关的信息,计算针对目标应用的第二消息摘要。
在步骤S550,可以由SDK调用设备600的比较单元650将第一消息摘要与第二消息摘要进行比较。如果第一消息摘要与第二消息摘要相同,则方法500前进到步骤S560,否则方法500前进到步骤S570。
在步骤S560,可以由SDK调用设备600的调用单元660确定目标应用是宿主应用,并且允许目标应用调用SDK。
在步骤S570,可以由SDK调用设备600的调用单元660确定目标应用不是宿主应用,并且不允许目标应用调用SDK。由此,可以确保SDK被宿主应用使用,从而有效地防止SDK被恶意使用。
在一些实施例中,与目标应用相关的信息包括目标应用的名称和版本。
在一些实施例中,该不对称加密算法是RSA算法。
在一些实施例中,消息摘要计算单元640利用SHAl算法计算第二消息摘要,和/或第一消息摘要是利用SHAl算法计算的。
尽管上述各个实施例利用SHAl算法来计算消息摘要,然而应理解,除了SHAl算法以外的其他适当的数字签名算法也可以应用于本发明。尽管上述各个实施例利用RSA算法来对消息摘要进行加密,然而应理解,除了RSA算法以外的其他适当的不对称加密算法以及对称加密算法也可以应用于本发明。此外,尽管上述各个实施例利用应用的名称和版本来计算消息摘要,然而应理解,也可以利用与应用相关的其他信息来计算消息摘要。
至此已经结合优选实施例对本发明进行了描述。应该理解,本领域技术人员在不脱离本发明的精神和范围的情况下,可以进行各种其它的改变、替换和添加。因此,本发明的范围不局限于上述特定实施例,而应由所附权利要求所限定。

Claims (18)

1.一种软件开发工具包SDK提供方法,用于由SDK提供方向应用开发方提供SDK,所述SDK提供方法包括以下步骤:
从应用开发方接收与应用开发方中的应用相关的信息;
根据接收到的信息计算针对所述应用的消息摘要;
利用不对称加密算法的私钥将所述消息摘要加密以生成数字签名;
将数字签名和不对称加密算法的公钥打包到SDK中;以及
将打包后的SDK发送给应用开发方,以供所述应用调用SDK。
2.根据权利要求1所述的SDK提供方法,其中,所述不对称加密算法是RSA算法。
3.根据权利要求1或2所述的SDK提供方法,其中,与所述应用相关的信息包括所述应用的名称和版本。
4.根据权利要求1至3中任一项所述的SDK提供方法,其中,针对所述应用的消息摘要是利用SHAl算法计算的。
5.一种软件开发工具包SDK调用方法,用于由应用开发方在目标应用中调用针对宿主应用的SDK,所述SDK调用方法包括以下步骤:
从SDK提供方接收针对宿主应用的SDK;
从SDK中读取针对宿主应用的数字签名和不对称加密算法的公钥;
通过所述公钥对所述数字签名进行解密,以得到针对所述宿主应用的第一消息摘要,其中所述数字签名是利用所述不对称加密算法的私钥对所述第一消息摘要加密生成的;
根据与所述目标应用相关的信息,计算针对所述目标应用的第二消息摘要;
将所述第一消息摘要与第二消息摘要进行比较;以及
如果所述第一消息摘要与第二消息摘要相同,则确定所述目标应用是所述宿主应用,并且允许所述目标应用调用SDK。
6.根据权利要求5所述的SDK调用方法,还包括步骤:
如果所述第一消息摘要与第二消息摘要不相同,则确定所述目标应用不是所述宿主应用,并且不允许所述目标应用调用SDK。
7.根据权利要求5或6所述的SDK调用方法,其中,与所述目标应用相关的信息包括所述目标应用的名称和版本。
8.根据权利要求5至7中任一项所述的SDK调用方法,其中,所述不对称加密算法是RSA算法。
9.根据权利要求5至8中任一项所述的SDK调用方法,其中,所述第一消息摘要和/或所述第二消息摘要是利用SHAl算法计算的。
10.一种软件开发工具包SDK提供设备,用于由SDK提供方向应用开发方提供SDK,所述SDK提供设备包括:
接收单元,用于从应用开发方接收与应用开发方中的应用相关的信息;
消息摘要计算单元,用于根据接收到的信息计算针对所述应用的消息摘要;
数字签名生成单元,用于利用不对称加密算法的私钥将所述消息摘要加密以生成数字签名;
打包单元,用于将数字签名和不对称加密算法的公钥打包到SDK中;以及
发送单元,用于将打包后的SDK发送给应用开发方,以供所述应用调用SDK。
11.根据权利要求10所述的SDK提供设备,其中,所述不对称加密算法是RSA算法。
12.根据权利要求10或11所述的SDK提供设备,其中,与所述应用相关的信息包括所述应用的名称和版本。
13.根据权利要求10至12中任一项所述的SDK提供设备,其中,所述消息摘要计算单元利用SHAl算法计算所述消息摘要。
14.一种软件开发工具包SDK调用设备,用于由应用开发方在目标应用中调用针对宿主应用的SDK,所述SDK调用设备包括:
接收单元,用于从SDK提供方接收针对宿主应用的SDK;
读取单元,用于从SDK中读取针对宿主应用的数字签名和不对称加密算法的公钥;
解密单元,用于通过所述公钥对所述数字签名进行解密,以得到针对所述宿主应用的第一消息摘要,其中所述数字签名是利用所述不对称加密算法的私钥对所述第一消息摘要加密生成的;
消息摘要计算单元,用于根据与所述目标应用相关的信息,计算针对所述目标应用的第二消息摘要;
比较单元,用于将所述第一消息摘要与第二消息摘要进行比较;以及
调用单元,用于如果所述第一消息摘要与第二消息摘要相同,则确定所述目标应用是所述宿主应用,并且允许所述目标应用调用SDK。
15.根据权利要求14所述的SDK调用设备,其中,所述调用单元还用于:
如果所述第一消息摘要与第二消息摘要不相同,则确定所述目标应用不是所述宿主应用,并且不允许所述目标应用调用SDK。
16.根据权利要求14或15所述的SDK调用设备,其中,与所述目标应用相关的信息包括所述目标应用的名称和版本。
17.根据权利要求14至16中任一项所述的SDK调用设备,其中,所述不对称加密算法是RSA算法。
18.根据权利要求14至17中任一项所述的SDK调用设备,其中,所述消息摘要计算单元利用SHAl算法计算所述第二消息摘要,和/或所述第一消息摘要是利用SHAl算法计算的。
CN201310647814.XA 2013-12-04 2013-12-04 Sdk提供和调用方法及相关设备 Pending CN103617394A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310647814.XA CN103617394A (zh) 2013-12-04 2013-12-04 Sdk提供和调用方法及相关设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310647814.XA CN103617394A (zh) 2013-12-04 2013-12-04 Sdk提供和调用方法及相关设备

Publications (1)

Publication Number Publication Date
CN103617394A true CN103617394A (zh) 2014-03-05

Family

ID=50168097

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310647814.XA Pending CN103617394A (zh) 2013-12-04 2013-12-04 Sdk提供和调用方法及相关设备

Country Status (1)

Country Link
CN (1) CN103617394A (zh)

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104166557A (zh) * 2014-08-29 2014-11-26 北京网秦天下科技有限公司 应用程序的运行方法和装置
WO2016058488A1 (zh) * 2014-10-17 2016-04-21 阿里巴巴集团控股有限公司 一种用于提供sdk文件的方法与设备
WO2016070382A1 (zh) * 2014-11-06 2016-05-12 华为技术有限公司 一种安全信息配制方法、安全验证方法以及相关芯片
CN105760750A (zh) * 2016-02-01 2016-07-13 北京华胜天成科技股份有限公司 软件篡改识别方法和***
CN106295310A (zh) * 2016-07-28 2017-01-04 乐视控股(北京)有限公司 第三方程序sdk验证处理方法及装置
CN106385318A (zh) * 2016-09-06 2017-02-08 北京叮叮关爱科技有限公司 基于椭圆方程的sdk验证方法
CN106529218A (zh) * 2016-10-28 2017-03-22 杭州华三通信技术有限公司 一种应用校验方法和装置
CN106709324A (zh) * 2016-11-10 2017-05-24 京东方科技集团股份有限公司 用于验证应用安全性的方法和设备
CN107766701A (zh) * 2016-08-19 2018-03-06 北京京东尚科信息技术有限公司 电子设备、动态库文件保护方法及装置
CN109117647A (zh) * 2018-07-17 2019-01-01 众安信息技术服务有限公司 一种移动应用sdk的权限控制管理方法及管理***
CN109710332A (zh) * 2018-12-28 2019-05-03 上海掌门科技有限公司 寄宿应用的处理方法、设备及计算机可读存储介质
CN112689285A (zh) * 2020-12-10 2021-04-20 航天信息股份有限公司 一种移动端sdk的授权认证方法及***
CN112800393A (zh) * 2021-01-29 2021-05-14 深圳市商汤科技有限公司 授权认证、软件开发工具包生成方法、装置及电子设备

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1914873A (zh) * 2003-12-16 2007-02-14 富可视公司 软件的数字签名保护
CN101950344A (zh) * 2010-09-21 2011-01-19 广东欧珀移动通信有限公司 一种嵌入式软件程序加解密方法
CN102609665A (zh) * 2012-01-19 2012-07-25 福建三元达软件有限公司 对用户程序签名及验证用户程序签名的方法及装置
CN102892114A (zh) * 2012-09-28 2013-01-23 大唐移动通信设备有限公司 一种设备合法性检验的方法及装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1914873A (zh) * 2003-12-16 2007-02-14 富可视公司 软件的数字签名保护
CN101950344A (zh) * 2010-09-21 2011-01-19 广东欧珀移动通信有限公司 一种嵌入式软件程序加解密方法
CN102609665A (zh) * 2012-01-19 2012-07-25 福建三元达软件有限公司 对用户程序签名及验证用户程序签名的方法及装置
CN102892114A (zh) * 2012-09-28 2013-01-23 大唐移动通信设备有限公司 一种设备合法性检验的方法及装置

Cited By (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104166557A (zh) * 2014-08-29 2014-11-26 北京网秦天下科技有限公司 应用程序的运行方法和装置
WO2016058488A1 (zh) * 2014-10-17 2016-04-21 阿里巴巴集团控股有限公司 一种用于提供sdk文件的方法与设备
CN105765897B (zh) * 2014-11-06 2019-06-28 华为技术有限公司 一种安全信息配制方法、安全验证方法以及相关芯片
WO2016070382A1 (zh) * 2014-11-06 2016-05-12 华为技术有限公司 一种安全信息配制方法、安全验证方法以及相关芯片
CN105765897A (zh) * 2014-11-06 2016-07-13 华为技术有限公司 一种安全信息配制方法、安全验证方法以及相关芯片
US10419217B2 (en) 2014-11-06 2019-09-17 Huawei Technologies Co., Ltd. Security information configuration method, security verification method, and related chip
CN105760750A (zh) * 2016-02-01 2016-07-13 北京华胜天成科技股份有限公司 软件篡改识别方法和***
CN106295310A (zh) * 2016-07-28 2017-01-04 乐视控股(北京)有限公司 第三方程序sdk验证处理方法及装置
CN107766701A (zh) * 2016-08-19 2018-03-06 北京京东尚科信息技术有限公司 电子设备、动态库文件保护方法及装置
CN107766701B (zh) * 2016-08-19 2021-01-26 北京京东尚科信息技术有限公司 电子设备、动态库文件保护方法及装置
CN106385318A (zh) * 2016-09-06 2017-02-08 北京叮叮关爱科技有限公司 基于椭圆方程的sdk验证方法
CN106385318B (zh) * 2016-09-06 2019-06-14 北京叮叮关爱科技有限公司 基于椭圆方程的sdk验证方法
CN106529218A (zh) * 2016-10-28 2017-03-22 杭州华三通信技术有限公司 一种应用校验方法和装置
CN106529218B (zh) * 2016-10-28 2020-03-06 新华三技术有限公司 一种应用校验方法和装置
US10621335B2 (en) 2016-11-10 2020-04-14 Boe Technology Group Co., Ltd. Method and device for verifying security of application
CN106709324A (zh) * 2016-11-10 2017-05-24 京东方科技集团股份有限公司 用于验证应用安全性的方法和设备
WO2018086276A1 (zh) * 2016-11-10 2018-05-17 京东方科技集团股份有限公司 用于验证应用安全性的方法和设备
CN109117647A (zh) * 2018-07-17 2019-01-01 众安信息技术服务有限公司 一种移动应用sdk的权限控制管理方法及管理***
CN109710332A (zh) * 2018-12-28 2019-05-03 上海掌门科技有限公司 寄宿应用的处理方法、设备及计算机可读存储介质
CN112689285A (zh) * 2020-12-10 2021-04-20 航天信息股份有限公司 一种移动端sdk的授权认证方法及***
CN112689285B (zh) * 2020-12-10 2023-08-15 航天信息股份有限公司 一种移动端sdk的授权认证方法及***
CN112800393A (zh) * 2021-01-29 2021-05-14 深圳市商汤科技有限公司 授权认证、软件开发工具包生成方法、装置及电子设备
WO2022160697A1 (zh) * 2021-01-29 2022-08-04 深圳市商汤科技有限公司 授权认证、软件开发工具包生成方法、装置及电子设备

Similar Documents

Publication Publication Date Title
CN103617394A (zh) Sdk提供和调用方法及相关设备
US8966653B2 (en) Method and apparatus for provisioning a mobile application
US20140281477A1 (en) Secure Cloud Storage and Encryption Management System
CN111258602B (zh) 信息更新方法和装置
CN103620556A (zh) 将应用绑定到设备能力
WO2004019191A2 (en) Apparatus, system and method for securing digital documents in a digital appliance
US8745616B1 (en) Systems and methods for providing digital certificates that certify the trustworthiness of digitally signed code
KR20130136064A (ko) 단말의 애플리케이션 제공 방법 및 그 단말
CN110362990A (zh) 应用安装的安全处理方法、装置及***
KR101523309B1 (ko) 어플리케이션 배포 시스템 및 방법
US20140059341A1 (en) Creating and accessing encrypted web based content in hybrid applications
CN110058867A (zh) 应用程序镜像打包、安装方法及计算机装置、存储介质
CN113242134B (zh) 数字证书签名方法、装置、***及存储介质
JP2022541835A (ja) データ要求を処理するための方法及び装置、電子機器、記憶媒体並びにコンピュータプログラム
KR20130101964A (ko) 플랫폼 컴포넌트들의 보안 업그레이드 또는 다운그레이드를 위한 방법 및 시스템
CN108306891B (zh) 使用待交换数据来执行机器学习的方法、设备和***
CN110705985B (zh) 用于存储信息的方法和装置
CN111914034A (zh) 用于区块链的电子档案的处理方法、装置、***和介质
CN110046000B (zh) 小程序运行方法和装置
US9449194B2 (en) Secure access to running client application features from a browser application
CN110414269B (zh) 应用安装包的处理方法、相关装置、存储介质及***
KR101324693B1 (ko) 어플리케이션 보안 시스템 및 방법
CN109995534B (zh) 一种对应用程序进行安全认证的方法和装置
CN111935138B (zh) 安全登录的防护方法、装置及电子设备
CN110046493B (zh) 一种数据处理方法、装置、设备和机器可读介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20140305

WD01 Invention patent application deemed withdrawn after publication