一种安全的SDK制作和运行方法技术

技术编号:11277940 阅读:124 留言:0更新日期:2015-04-09 10:46
一种安全的SDK制作和运行方法,该方法将SDK制作为外部SDK和内部SDK;外部SDK生成对应的JAR文件,用于装载SO共享库文件和外部接口的定义,SO共享库文件用于内部SDK的装载以及内部SDK中所封装文件的校验和解密;所述的外部接口由用户调用,通过该接口用户能够对内部SDK中所封装的需要保密的算法和功能进行调用;内部SDK生成相应的JAR文件,封装需要保密的算法和功能,对该JAR文件进行加密和签名,加密和签名方法与外部SDK中SO共享库文件中的解密和检验方法相匹配。本发明专利技术的方法,使得核心代码和壳代码分离,保证了SDK在分发使用的过程中的源代码相对安全,大大降低被破解的风险。

【技术实现步骤摘要】
【专利摘要】一种安全的SDK制作和运行方法,该方法将SDK制作为外部SDK和内部SDK;外部SDK生成对应的JAR文件,用于装载SO共享库文件和外部接口的定义,SO共享库文件用于内部SDK的装载以及内部SDK中所封装文件的校验和解密;所述的外部接口由用户调用,通过该接口用户能够对内部SDK中所封装的需要保密的算法和功能进行调用;内部SDK生成相应的JAR文件,封装需要保密的算法和功能,对该JAR文件进行加密和签名,加密和签名方法与外部SDK中SO共享库文件中的解密和检验方法相匹配。本专利技术的方法,使得核心代码和壳代码分离,保证了SDK在分发使用的过程中的源代码相对安全,大大降低被破解的风险。【专利说明】—种安全的SDK制作和运行方法
本专利技术涉及移动应用领域,具体地说是一种安全的SDK制作和运行方法。
技术介绍
目前,市面上较为流行的SDK (Software Development Kit,软件开发套件,以下简称SDK)提供方式是直接导出的JAR文件包,调用者直接将JAR文件包含到软件项目中进行开发和运行。由于JAR文件包是由Java类文件导出的,所以通过反编译软件可以很容易的查看SDK的源代码和运行原理。如果用这种方式制作的JAR文件来提供计费等安全需求等级较高的能力,则很容易在未经授权的情况下被破解使用。
技术实现思路
本专利技术的目的是针对现有技术所存在的SDK安全问题,提出了一种安全的SDK制作和运行方法,保证了 SDK在分发使用的过程中的源代码相对安全,大大降低被破解的风险。 本专利技术的技术方案是:一种安全的SDK制作方法,该方法将SDK制作为外部SDK和内部SDK ;所述的外部SDK生成对应的JAR文件,用于装载SO共享库文件和外部接口的定义,所述的SO共享库文件用于内部SDK的装载以及内部SDK中所封装文件的校验和解密;所述的外部接口由用户调用,通过该接口用户能够对内部SDK中所封装的需要保密的算法和功能进行调用;所述的内部SDK生成相应的JAR文件,用于封装需要保密的算法和功能,对该JAR文件进行加密和签名,所述的加密和签名方法与外部SDK中SO共享库文件中的解密和检验方法相匹配。 本专利技术的内部SDK中所封装保密文件采用AES加密方法进行加密,外部SDK中SO共享库文件采用与之对应的AES解密方法进行解密。 本专利技术的内部SDK中所封装保密文件采用RSA私钥签名方法进行签名,外部SDK中SO共享库文件采用与之对应的RSA校验方法进行校验。 —种安全的SDK运行方法,它包括以下步骤:开发者首先调用外部JAR文件,对SO共享库文件进行初始化,SO共享库文件对内部JAR文件进行签名验证,通过签名验证后对内部JAR文件进行解密并装载解密后的内部JAR文件,之后进行API的调用。 本专利技术的有益效果:本专利技术提出的安全的SDK制作和运行方法,使得核心代码和壳代码分离;内部SDK的加密使用AES256位加密和RSA签名认证,JAR通过Java Native Interface调用Java的ClassLoader 和 Android 的 DexClassLoader 进行装载。 【专利附图】【附图说明】 图1是本专利技术的结构示意图。 图2 SDK的制作流程图。 图3 SDK的运行流程图。 【具体实施方式】 下面结合附图和实施例对本专利技术作进一步的说明。 如图2所示,SDK制作流程为:外部SDK首先生成对应的JAR文件,主要用于装载SO共享库和外部接口的定义。然后生成共享库的SO文件,主要用于文件校验和解密,以及内部SDK装载。而内部SDK在生成相应的JAR文件后,对JAR文件进行加密和签名,最终得到加密的JAR和签名文件。内部SDK是对外部SDK定义的接口的具体实现,这样使用者在动态装载了内部SDK之后,调用外部SDK接口实际上就是在调用其接口的实现部分。 如图3所示,SDK调用流程:开发者首先调用外部JAR文件的初始方法,对SO文件进行初始化。SO文件验证签名,通过签名后对内部JAR文件进行解密并装载解密后的内部JAR文件,之后就可以进行API的调用了。 本专利技术提出的SDK的制作和调用方法,对导出的SDK的JAR文件进行非对称加密。使用C++实现JAR文件的加载方法,SDK在初始化时调用此方法对JAR文件进行解密,然后动态装载到内存中。这样在对外提供的仅仅是一个JAR壳文件(提供初始化方法和一些接口,无具体实现)、一个so共享库(C++实现的核心解密算法、SDK装载方法等)和一个加密的JAR文件(SDK的主要接口的实现部分),如图1所示。这些文件相比较一个完全无加密的JAR文件来说,大大提高了破解的难度。 本专利技术未涉及部分均与现有技术相同或可采用现有技术加以实现。【权利要求】1.一种安全的301(制作方法,其特征是该方法将301(制作为外部301(和内部301(; 所述的外部301(生成对应的从I?文件,用于装载30共享库文件和外部接口的定义,所述的30共享库文件用于内部301(的装载以及内部301(中所封装文件的校验和解密;所述的外部接口由用户调用,通过该接口用户能够对内部301(中所封装的需要保密的算法和功能进行调用; 所述的内部301(生成相应的了仙文件,用于封装需要保密的算法和功能,对该了仙文件进行加密和签名,所述的加密和签名方法与外部301(中30共享库文件中的解密和检验方法相匹配。2.根据权利要求1所述的安全的301(制作方法,其特征是内部301(中所封装保密文件采用仙3加密方法进行加密,外部301(中30共享库文件采用与之对应的仙3解密方法进行解密。3.根据权利要求1所述的安全的301(制作方法,其特征是内部301(中所封装保密文件采用旧八私钥签名方法进行签名,外部301(中30共享库文件采用与之对应的旧八校验方法进行校验。4.一种安全的301(运行方法,其特征是它包括以下步骤:开发者首先调用外部了仙文件,对30共享库文件进行初始化,30共享库文件对内部从I?文件进行签名验证,通过签名验证后对内部从I?文件进行解密并装载解密后的内部从I?文件,之后进行八?I的调用。【文档编号】G06F21/12GK104504311SQ201510023559【公开日】2015年4月8日 申请日期:2015年1月19日 优先权日:2015年1月19日 【专利技术者】韩玮, 陆林 申请人:炫彩互动网络科技有限公司本文档来自技高网...

【技术保护点】
一种安全的SDK制作方法,其特征是该方法将SDK制作为外部SDK和内部SDK;所述的外部SDK生成对应的JAR文件,用于装载SO共享库文件和外部接口的定义,所述的SO共享库文件用于内部SDK的装载以及内部SDK中所封装文件的校验和解密;所述的外部接口由用户调用,通过该接口用户能够对内部SDK中所封装的需要保密的算法和功能进行调用;所述的内部SDK生成相应的JAR文件,用于封装需要保密的算法和功能,对该JAR文件进行加密和签名,所述的加密和签名方法与外部SDK中SO共享库文件中的解密和检验方法相匹配。

【技术特征摘要】

【专利技术属性】
技术研发人员:韩玮陆林
申请(专利权)人:炫彩互动网络科技有限公司
类型:发明
国别省市:江苏;32

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1