用于软件模块绑定的系统和方法技术方案

技术编号:22850207 阅读:17 留言:0更新日期:2019-12-17 23:35
本发明专利技术的实施例涉及用于软件模块绑定的方法和系统。密码密钥和质询元素能在第一软件模块与第二软件模块之间交换以在所述第一软件模块与所述第二软件模块之间创建绑定。因此,第一软件模块能安全地并且可信地访问第二软件模块处的敏感数据和功能性,同时能防止未经授权的软件模块访问所述敏感数据和功能性。

System and method for software module binding

【技术实现步骤摘要】
【国外来华专利技术】用于软件模块绑定的系统和方法相关申请交叉引用本申请是2017年5月3日申请的第62/500,701号美国临时申请的非临时申请并要求其申请日的权益,所述申请出于所有目的以全文引用的方式并入本文中。
技术介绍
加密密钥常常存储在计算装置上以用于各种任务,例如安全通信、身份验证(例如,通过数字签名)和唯一代码生成。举例来说,移动装置可使用加密密钥(如果其是对称密钥,那么被替代地称为解密密钥)以对用于生成用于移动交易的密码的加密密钥进行解密。恶意软件可将这些密钥作为复制和误用的目标。因此,需要更好地保护例如加密密钥的敏感数据免于被盗和误用的系统。本专利技术的实施例个别地和共同地解决了这些和其它问题。
技术实现思路
本专利技术的实施例提供一种用于将第一软件模块与第二软件模块绑定的过程。通过交换加密或解密密钥、质询值和应用程序标识符,第一软件模块和第二软件模块可以可靠地且反复地对彼此进行验证并且安全地调用可涉及使用敏感数据的功能性。在一些实施例中,所述绑定可通过将绑定信息和敏感数据存储在安全硬件中来进行硬件支持。举例来说,第二软件模块可将加密或解密密钥、质询值和其它合适的信息存储在安全元件中。也可通过基于软件的保护,例如混淆、保护和白盒化,来改进绑定和安全性。为了起初在第一软件模块(例如,应用程序)与第二软件模块(例如,密钥库)之间建立绑定,可在初始化应用程序时执行绑定算法以在软件模块之间交换指示信息、密钥和/或质询值。举例来说,第二软件模块可将质询值提供到第一软件模块。其后,在应用程序的运行时执行期间,可使用基于在应用程序的初始化期间生成的质询值导出的数据密钥对在软件模块之间交换的数据进行加密。另外,可在每一通信期间替换此质询值,使得每一后续通信使用新的质询值且因此使用新的加密密钥。本专利技术的一个实施例涉及一种方法。所述方法包括:通过第一软件模块生成质询请求,所述质询请求包括数据元素,所述数据元素包括第一软件模块标识符和时间段;通过第一软件模块使用第一质询元素对质询请求中的数据元素进行加密;通过第一软件模块将质询请求提供到第二软件模块;通过第二软件模块对质询请求中的数据元素进行解密;通过第二软件模块验证数据元素;通过第二软件模块生成第二质询元素;通过第二软件模块对第二质询元素进行加密;通过第二软件模块向第一软件模块提供包括经过加密的第二质询元素的质询响应;通过第一软件模块对经过加密的第二质询元素进行解密;和通过第一软件模块存储第二质询元素。本专利技术的另一实施例涉及一种计算装置,其包括处理器、第一软件模块和第二软件模块,所述计算装置配置成执行上文所描述的方法。关于本专利技术的实施例的其它细节可见于具体实施方式和附图。附图说明图1示出了根据一些实施例的计算装置的框图。图2展示根据本专利技术的实施例的示出应用程序与密钥库之间的最初通信的图。图3A到3C展示根据本专利技术的实施例的示出应用程序与密钥库之间的第一组装置绑定通信的图。图4A到4B展示根据本专利技术的实施例的示出应用程序与密钥库之间的第二组装置绑定通信的图。图5示出了根据一些实施例的系统的框图。图6示出了根据一些实施例的便携式计算装置的框图。具体实施方式本专利技术的实施例涉及绑定计算装置中的软件模块。举例来说,第一软件模块可与第二软件模块绑定。此绑定可使得第二软件模块能够安全地标识第一软件模块并且确定第一软件模块是否经过授权来访问某些受限数据(例如,加密或解密密钥)和/或受限过程(例如,密码生成或解密)。为了减少软件模块接口处的漏洞,每一软件模块可针对彼此进行验证以确保软件模块中的功能正被已知实体或已知软件组件调用,且确保调用程序经过授权以调用被调用的功能。在软件模块之间来回传递的数据也可经过加密以防止数据交换过程中的任何中间人窃听,以确保数据机密性和完整性。根据一些实施例,在第一软件模块的第一次初始化期间(例如,当软件应用程序被第一次编译并安装在装置上,或第一次执行软件应用程序时),软件模块执行绑定算法以交换标识信息和质询值以便将软件模块彼此绑定。在软件应用程序的后续运行时间期间,软件模块可使用质询值以生成数据加密密钥。软件模块接着可彼此安全地转移数据并且使用质询值密钥和标识信息对彼此进行验证。交换的质询值和在第一次初始化时执行并在稍后互动期间刷新的绑定算法提供一种用于软件模块在运行时间期间进行相互验证的方式,因为未经授权的应用程序将不知晓质询值、标识信息和其它受保护数据。这可减少试图调用软件中的一个中的功能的恶意应用程序,因为恶意应用程序将不会具有与被调用的软件模块通信所需的正确的质询值或其它信息。质询值的循环还缓解了密钥被破解,因为其允许数据加密密钥随时间推移而改变。本文中所描述的技术还可扩展并且可容易地部署到数百万个装置,因为绑定算法和密钥导出算法可被部署作为写入到软件模块中的代码的部分。以下描述将集中于第一软件模块是移动应用程序且第二软件模块是密钥库的实例。然而,实施例还适用于任何其它合适类型的软件模块,且所述软件模块可与硬件组件(例如,安全存储器硬件)集成。在论述本专利技术的具体实施例之前,可详细地描述一些术语。“通信装置”可以是包括一个或多个电子组件(例如,集成芯片)的装置,所述一个或多个电子组件可与另一装置通信。举例来说,通信装置可以是计算装置,其包括联接到存储器的至少一个处理器,所述存储器存储用于供处理器执行的指令或代码。“便携式通信装置”可以是可由用户运输和操作的通信装置,且可包括一个或多个电子组件(例如,集成芯片)。便携式通信装置可将远程通信能力提供给网络。便携式通信装置可配置成将数据或通信传输到其它装置且从其它装置接收数据或通信。便携式通信装置可呈诸如以下各者的移动装置的形式:移动电话(例如,智能电话、蜂窝电话等)、平板计算机、便携式媒体播放器、个人数字助理装置(PDA)、可穿戴装置(例如,手表、诸如健身跟踪器的健康监测装置等)、电子阅读器装置等,或者呈卡(例如,智能卡)或挂件等形式。便携式通信装置的实例还可包括便携式计算装置(例如,膝上型计算机、上网本、超级本等)。便携式通信装置还可呈车辆(例如,汽车)的形式,或者整合成车辆的一部分(例如,车辆的信息系统)。“密钥”可指用于加密算法中以将输入数据变换成另一表示的一条信息。加密算法可以是将原始数据变换成替代表示的加密算法,或将加密信息变换回原始数据的解密算法。加密算法的实例可包括三重数据加密标准(TDES)、数据加密标准(DES)、高级加密标准(AES)等。密钥可以是任何合适大小或类型。举例来说,不对称密钥可以是2048位RSA密钥,或P-256ECC密钥。“有限使用密钥”或“LUK”可指只可在有限的时间内使用或用于有限数目的交易的密钥,并且在耗尽有限的使用时可需要加以更新或补充。LUK可与限制LUK的使用的一个或多个受限使用阈值的集相关,其中一旦LUK的使用被耗尽或超出一个或多个受限使用阈值的集,便将拒绝使用所述LUK进行的进一步交易,即使基础账户仍然信誉良好。一本文档来自技高网...

【技术保护点】
1.一种由包括处理器、第一软件模块和第二软件模块的计算装置执行的方法,所述方法包括:/n通过所述第一软件模块生成质询请求,所述质询请求包括数据元素,所述数据元素包括第一软件模块标识符和时间段;/n通过所述第一软件模块使用第一质询元素对所述质询请求中的所述数据元素进行加密;/n通过所述第一软件模块将所述质询请求提供到第二软件模块;/n通过所述第二软件模块对所述质询请求中的所述数据元素进行解密;/n通过所述第二软件模块验证所述数据元素;/n通过所述第二软件模块生成第二质询元素;/n通过所述第二软件模块对所述第二质询元素进行加密;/n通过所述第二软件模块向所述第一软件模块提供包括经过加密的第二质询元素的质询响应;/n通过所述第一软件模块对所述经过加密的第二质询元素进行解密;以及/n通过所述第一软件模块存储所述第二质询元素。/n

【技术特征摘要】
【国外来华专利技术】20170503 US 62/500,7011.一种由包括处理器、第一软件模块和第二软件模块的计算装置执行的方法,所述方法包括:
通过所述第一软件模块生成质询请求,所述质询请求包括数据元素,所述数据元素包括第一软件模块标识符和时间段;
通过所述第一软件模块使用第一质询元素对所述质询请求中的所述数据元素进行加密;
通过所述第一软件模块将所述质询请求提供到第二软件模块;
通过所述第二软件模块对所述质询请求中的所述数据元素进行解密;
通过所述第二软件模块验证所述数据元素;
通过所述第二软件模块生成第二质询元素;
通过所述第二软件模块对所述第二质询元素进行加密;
通过所述第二软件模块向所述第一软件模块提供包括经过加密的第二质询元素的质询响应;
通过所述第一软件模块对所述经过加密的第二质询元素进行解密;以及
通过所述第一软件模块存储所述第二质询元素。


2.根据权利要求1所述的方法,其中所述第一软件模块是SDK,且所述第二软件模块是密钥库模块。


3.根据权利要求1所述的方法,其进一步包括:
通过所述第二软件模块使用第二软件模块公用-私用密钥对的私用密钥对所述第二质询元素进行签名;
通过所述第二软件模块将经过签名的第二质询元素提供到所述第一软件模块;以及
通过所述第一软件模块使用所述第二软件模块公用-私用密钥对的公用密钥验证所述经过签名的第二质询元素。


4.根据权利要求1所述的方法,
其中对所述第二质询元素进行加密包括通过所述第二软件模块使用所述第一质询元素对所述第二质询元素进行加密,且
其中对所述第二质询元素进行解密包括通过所述第一软件模块使用所述第一质询元素对所述第二质询元素进行解密。


5.根据权利要求1所述的方法,其中所述质询请求的所述数据元素进一步包括用于所述第一软件模块的版本标识符和用于所述计算装置的应用程序装置标识符。


6.根据权利要求1所述的方法,其进一步包括:
通过所述第一软件模块使用第一软件模块公用-私用密钥对的私用密钥对所述质询请求进行签名;以及
通过所述第二软件模块使用所述第一软件模块公用-私用密钥对的公用密钥验证所述质询请求。


7.根据权利要求1所述的方法,其中所述第一质询元素和所述第二质询元素为不同的随机数。


8.根据权利要求1所述的方法,其进一步包括:
通过所述第二软件模块存储所述第二质询元素。


9.根据权利要求1所述的方法,其进一步包括:
通过所述第二软件模块生成短期证书,其中所述短期证书存在于所述质询响应中。


10.根据权利要求2所述的方法,其中所述密钥库模块存储密钥,所述密钥用于对用于生成密码的密钥进行解密。


11.一种计算装置,其包括:
处理器;<...

【专利技术属性】
技术研发人员:S·巴塔察里亚
申请(专利权)人:维萨国际服务协会
类型:发明
国别省市:美国;US

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

1