用于通过基于app的身份的app间相互信任的安全模块及方法与流程

文档序号:36011661发布日期:2023-11-17 05:59阅读:25来源:国知局
用于通过基于app的身份的app间相互信任的安全模块及方法与流程

本发明涉及用于建立应用程序与应用程序(app与app)相互信任以使得这些应用程序之间的信息和数据的交换可以安全方式发生的模块和方法。特别地,本发明涉及包括识别模块和可信存储模块的模块。识别模块被配置为在设置在计算设备的标准操作系统内的应用程序和安全模块之间建立密码绑定。一旦完成这个,则可以在应用程序和安全模块之间建立安全通信。然后,应用程序随后可以利用安全模块中的密码密钥来建立与其它应用程序的安全通信。然后,基于密码绑定和包含在可信存储模块中的信息来认证应用程序的完整性。然后,应用程序可以作为具有由可信第三方发布的一组信任属性的经认证的应用程序继续处理动作。


背景技术:

1、当前,安全元件或可信执行环境(tee)通常用于计算设备中,以执行需要被保护以免受利用它们的应用程序(app)的正常操作环境影响的逻辑和操作(尤其是密码操作)。app通常将安全元件或tee视为可帮助提供可信存储或密码服务的单独计算模块。因此,利用安全元件或tee的大多数计算设备将其作为公共资源而提供,该公共资源是在运行于计算设备的正常操作系统中的所有app之间共享的。在这样的系统中,对安全元件或tee的访问控制通常由操作系统来实施。如果操作系统被损害(compromised),或者如果app已经被篡改,则安全元件或tee将不具有对其的任何了解,并且其可能被误用,导致所谓的“信任缺口”问题。

2、另外,随着app演进变得更加复杂和协作,日益需要app彼此安全地通信。特别地,在app之间可以建立安全通信信道之前,这些app需要一种方式在它们之间建立相互信任。这与依赖于其他app用于用户认证、支付和用于可信存储或处理的安全数据传送的app特别相关。这些app中的一些甚至可以在诸如终端用户的个人设备的不受信任的操作环境中运行。通常,当app需要信任另一app时,它将必须确定其他app是否是它应该与之对话的app,是否未被篡改(静态地和动态地),并且一旦这完成,app是否可以在app之间建立可信的通信信道。

3、这样的预防措施是重要的,因为恶意第三方可能试图修改在计算设备上运行的app,使得它不按其本应该的那样操作。例如,app可以仅允许一旦已经购买相关联的许可就由用户使用app的某些功能。恶意第三方可以修改app,使得app的所有功能可以由设备的用户访问,从而规避购买许可的需要。作为另一示例,app可以被配置为安全app,以在外部支付系统请求时提供支付授权。恶意第三方可以修改该app,使得授权不被计算设备的用户看到,并且授权反而可能被直接发送到与不良行动者相关联的数据服务器。

4、由于上述原因,本领域技术人员一直在努力提出一种模块和方法,其能够确保app没有被篡改,并且一旦被认证,就使用认证的app来建立与其他app的安全通信。


技术实现思路

1、通过根据本发明的实施例所提供的系统和方法,解决了上述和其它问题,并且在本领域中取得了进步。

2、根据本发明的模块和方法的实施例的第一优点在于,本发明的安全模块被密码地绑定到应用程序,使得安全模块能够静态地和/或动态地验证应用程序未被篡改。

3、根据本发明的模块和方法的实施例的第二优点在于,一旦安全模块静态地和/或动态地验证了应用程序的完整性,则安全模块被配置为处理与经认证的应用程序相关联的动作,使得经处理的动作能够证明应用程序的身份。

4、根据本发明的系统和方法的实施例的第三个优点是,计算设备内或不同计算设备中的其它应用程序或安全模块/tee然后可以利用经认证的应用程序来执行用户认证过程,或在安全模块/tee和经认证的应用程序之间建立安全通信信道。

5、根据本发明的系统和方法的实施例的第四个优点是,通过检查其它应用程序的信任属性满足预期动作的要求,并验证信任属性属于应用程序,可能彼此不知道的两个应用程序可以建立相互信任。

6、根据本发明的系统和方法的实施例的第五优点是,在两个应用程序之间端到端地建立相互信任,并且这独立于底层操作系统、硬件或通信信道。即使操作系统、硬件或通信信道被损害,两个应用程序仍可直接信任彼此的完整性。

7、根据本发明的系统和方法的实施例的第六优点在于,可以完全以软件实现系统,而对底层操作系统或硬件没有任何特殊要求。这使得其容易地适用于任何种类的应用程序端点。

8、上述优点由根据本发明的方法的实施例以如下方式操作来提供。

9、根据本发明的第一方面,公开了一种用于证明在计算设备的标准操作系统内设置的应用程序的真实性的安全模块,所述模块包括:识别模块,其被配置为:当在所述应用程序和所述安全模块之间建立通信时,在所述应用程序和所述安全模块之间建立第一密码绑定,由此基于预加载在所述安全模块中的与所述应用程序相关联的信息以及基于从所述应用程序获得的信息,来生成所述第一密码绑定;基于所述第一密码绑定来认证所述应用程序的完整性;以及处理用于经认证的应用程序的动作。

10、关于本发明的第一方面,识别模块还被配置为基于第二密码绑定动态地重新认证所述经认证的应用程序的完整性,其中基于预加载在所述安全模块中的与所述应用程序相关联的所述信息以及基于从所述应用程序新获得的信息,来生成所述第二密码绑定。

11、关于本发明的第一方面,安全模块还包括:非暂时性介质,其由处理单元可读取以存储用于引导所述处理单元执行以下操作的指令:提供密码沙箱,所述密码沙箱包括虚拟密码机以及在所述密码沙箱内的防篡改虚拟层,所述虚拟密码机执行包括解密虚拟机代码的密码操作,所述防篡改虚拟层用于防止密码操作受到未授权观察者的影响。

12、关于本发明的第一方面,由所述识别模块在所述应用程序和所述安全模块之间建立所述第一密码绑定包括:所述识别模块被配置为:从所述应用程序接收应用程序校验和,其中,基于所述应用程序的源代码、所述应用程序的二进制和/或所述应用程序的编程流,从所述应用程序导出所述应用程序校验和;从所述安全模块中设置的可信存储模块检索与所述应用程序相关联的可信校验和;以及基于从所述应用程序接收的所述应用程序校验和以及所述检索到的可信校验和,来生成所述第一密码绑定。

13、关于本发明的第一方面,由所述应用程序生成所述应用程序校验和包括:所述应用程序被配置为利用sha-256散列函数来对所述应用程序的所述源代码进行散列操作,以生成所述应用程序校验和。

14、关于本发明的第一方面,由所述识别模块在所述应用程序和所述安全模块之间建立所述第一密码绑定包括:所述识别模块被配置为:从所述应用程序接收与所述应用程序相关联的数字签名,其中在每次编译所述应用程序的源代码时使用对所述应用程序唯一的私钥对所述应用程序的源代码进行签名时,生成所述数字签名;从所述安全模块中设置的可信存储模块检索与所述应用程序相关联的可信公钥;以及基于从所述应用程序接收的所述数字签名和与所述应用程序相关联的所检索的可信公钥,来生成所述第一密码绑定。

15、关于本发明的第一方面,识别模块还被配置为:从所述应用程序接收应用程序校验和,其中基于所述应用程序的源代码从所述应用程序导出所述应用程序校验和;从所述安全模块中设置的可信存储模块检索与所述应用程序相关联的可信校验和;以及基于从所述应用程序接收的所述应用程序校验和、所述检索到的可信校验和、所述接收到的数字签名和所述检索到的可信公钥,重新生成所述第一密码绑定。

16、关于本发明的第一方面,由所述识别节点基于所述第一密码绑定对所述应用程序的所述完整性的所述认证包括:所述识别节点被配置为当从所述密码绑定确定从所述应用程序获得的信息与预加载在所述安全模块中的与所述应用程序相关联的所述信息匹配时,认证所述应用程序的所述完整性。

17、关于本发明的第一方面,由所述识别模块对所述经认证的应用程序的动作的处理包括:所述识别模块被配置为:使用密码密钥签名算法,使用对所述应用程序唯一的私钥来签名所述动作;以及将所述经签名的动作和检索到的证书链传送到另一应用程序,由此在接收到所述经签名的动作和所述证书链后,所述另一应用程序被配置为基于接收到的证书链来验证所述经签名的动作。

18、关于本发明的第一方面,动作包括由另一应用程序签名的请求和证书链,由此所述识别模块处理用于所述经认证的应用程序的所述动作包括:所述识别模块被配置为:基于所述证书链来验证所述经签名的请求;当确定所述经签名的请求已被验证时,执行所述请求内包含的指令;基于所执行的指令的结果来构造响应;使用对于所述应用程序唯一的私钥来签名所述响应;对所述经签名的响应加密,并将加密的经签名的响应传送到所述另一应用程序。

19、关于本发明的第一方面,由所述识别模块处理用于所述经认证的应用程序的所述动作包括:所述识别模块被配置为:基于所述动作的要求,从所述安全模块内设置的可信存储模块检索信任属性,并且其中,由已证明所述应用程序有资格被给予所述属性的可信第三方签名所述信任属性;基于检索到的信任属性,生成响应;以及将所生成的响应发送到另一应用程序,其中,在接收到所生成的响应时,所述另一应用程序被配置为使用包含在所述响应内的所述信任属性来执行安全事务。

20、根据本发明的第二方面,公开了一种用于使用根据本发明的第一方面的安全模块在第一计算应用程序和第二计算应用程序之间建立相互信任的系统,所述第一计算应用程序和所述第二计算应用程序设置在用户的计算设备的标准操作系统内,其中,所述应用程序包括所述第一计算应用程序,并且由此所述安全模块通信地连接到所述第一计算应用程序,所述系统包括:所述第二计算应用程序被配置为向所述第一计算应用程序发送认证请求;所述第一计算应用程序被配置为:当来自所述第二计算应用程序的所述认证请求被所述第一计算应用程序接收时,使用所述安全模块认证所述第一计算应用程序;当所述第一计算应用程序已被所述安全模块认证时,生成验证响应;以及将所述验证响应发送到所述第二计算应用程序,其中所述第二计算应用程序被配置为使用所述验证响应来建立所述第一计算应用程序和所述第二计算应用程序之间的所述相互信任。

21、关于本发明的第二方面,第二计算应用程序被配置为:当所述第二计算应用程序从接收到的验证响应确定所述第一计算应用程序已经被认证时,与所述第一计算应用程序共享安全数据。

22、根据本发明的第三方面,公开了一种用于使用根据本发明的第一方面的安全模块在第三计算应用程序和绑定到用户的计算设备的信任元件之间建立相互信任的系统,所述第三计算应用程序设置在所述用户的计算设备的标准操作系统内,其中所述应用程序包括所述第三计算应用程序,并且由此所述安全模块通信地连接到所述第三计算应用程序,所述系统包括:所述信任元件被配置为向所述第三计算应用程序发送认证请求;所述第三计算应用程序被配置为:当来自所述信任元件的所述认证请求被所述第三计算应用程序接收时,使用所述安全模块认证所述第三计算应用程序;当所述第三计算应用程序已被所述安全模块认证时,生成验证响应;以及将所述验证响应发送到所述信任元件,其中所述信任元件被配置为使用所述验证响应来建立所述第三计算应用程序和所述信任元件之间的所述相互信任。

23、根据本发明的第四方面,公开了一种用于使用根据本发明的第一方面的安全模块在第四计算应用程序与第五计算应用程序之间建立相互信任的系统,所述第四计算应用程序设置在所述用户的计算设备的标准操作系统内,其中所述应用程序包括所述第四计算应用程序,并且由此所述安全模块通信地连接到所述第四计算应用程序,所述系统包括:所述第五计算应用程序被配置为向所述第四计算应用程序发送认证请求;所述第四计算应用程序被配置为:当来自所述第五计算应用程序的所述认证请求被所述第四计算应用程序接收时,使用所述安全模块认证所述第四计算应用程序;当所述第四计算应用程序已被所述安全模块认证时,生成验证响应;以及将所述验证响应发送到所述第五计算应用程序,其中所述第五计算应用程序被配置为使用所述验证响应来建立所述第四计算应用程序和所述第五计算应用程序之间的所述相互信任。

24、根据本发明的第五方面,公开了一种用于证明在计算设备的标准操作系统内设置的应用程序的真实性的方法,所述方法包括以下步骤:当在所述应用程序和安全模块之间建立通信时,使用所述安全模块在所述应用程序和所述安全模块之间建立第一密码绑定,由此基于预加载在所述安全模块中的与所述应用程序相关联的信息和基于从所述应用程序获得的信息,来生成所述第一密码绑定;使用所述安全模块,基于所述第一密码绑定,来认证所述应用程序的完整性;以及使用所述安全模块处理所述经认证的应用程序的动作。

25、关于本发明的第五方面,方法还包括以下步骤:使用所述安全模块,基于第二密码绑定,动态地重新认证所述经认证的应用程序的完整性,其中基于预加载在所述安全模块中的与所述应用程序相关联的所述信息和从所述应用程序新获得的信息,生成所述第二密码绑定。

26、关于本发明的第五方面,安全模块包括:非暂时性介质,其由处理单元可读取以存储用于引导所述处理单元执行以下操作的指令:提供密码沙箱,所述密码沙箱包括虚拟密码机以及在所述密码沙箱内的防篡改虚拟层,所述虚拟密码机执行包括解密虚拟机代码的密码操作,所述防篡改虚拟层用于防止密码操作受到未授权观察者的影响。

27、关于本发明的第五方面,在所述应用程序和所述安全模块之间建立所述第一密码绑定的步骤包括以下步骤:使用所述安全模块,从所述应用程序接收应用程序校验和,其中,基于所述应用程序的源代码、所述应用程序的二进制和/或所述应用程序的编程流,从所述应用程序导出所述应用程序校验和;使用所述安全模块,从所述安全模块中设置的可信存储模块检索与所述应用程序相关联的可信校验和;以及使用所述安全模块,基于从所述应用程序接收的所述应用程序校验和以及所述检索到的可信校验和,来生成所述第一密码绑定。

28、关于本发明的第五方面,由所述应用程序生成所述应用程序校验和包括:所述应用程序被配置为利用sha-256散列函数来对所述应用程序的所述源代码进行散列操作,以生成所述应用程序校验和。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1