安全软件认证及验证制造技术

技术编号:16708082 阅读:21 留言:0更新日期:2017-12-02 23:22
在首次载入软件以供装置执行时,认证存储在非安全存储器件中的所述软件。认证所述软件可涉及对所述软件及所述软件的数字签名的密码编译操作。如果对所述软件的认证成功,那么可产生用于所述软件的验证标签,所述验证标签是基于所述软件及至少装置特定秘密数据。所述验证标签可存储在所述装置内。随后每当载入所述软件以供执行时,可通过使用所述验证标签来验证(并非认证)所述软件,以确认正在载入的所述软件与用以产生所述验证标签的软件相同,同时避免对所述软件的认证。

【技术实现步骤摘要】
【国外来华专利技术】安全软件认证及验证相关申请案的交叉引用本申请案主张2015年4月15日在美国专利商标局提交申请的非临时申请案第14/687,783号的优先权及权益,所述非临时申请案的全文以引用的方式并入本文中。
本文中所公开的各种特征大体涉及对软件的认证以减少对缺少安全存储器件的装置中的软件的黑客攻击,且更特定地说,涉及一种在首次执行软件时执行软件认证且此后执行更高效的软件验证的方法。
技术介绍
例如移动电话、移动装置、呼叫器、无线调制解调器、个人数字助理、平板计算机、个人信息管理器(PIM)、个人媒体播放器、掌上型计算机、膝上型计算机或具有处理器的任何其它装置的装置正变得愈来愈风行且普遍存在。在此类装置处产生、键入、存储及/或接收的数据应被保护,以免受到未经授权的存取。对装置中的数据的未经授权存取的一种此类风险包含:在所述装置上执行的软件可能已经被修改(例如,被黑客攻击),从而准许此类未经授权的存取。因此,应认证在装置上操作的软件以确保其未被修改。对装置上的软件的认证用以防止经修改软件在那些装置上执行。即,可在载入软件时,在执行之前认证所述软件,以验证所述软件未被破解(例如,被修改)。软件认证在装置不具有用以安全地存储软件的安全或受信任内部存储器件的情况下尤其重要。软件开发人员可使用密码术用数字方式对其软件进行签名,随后将所述软件散发到装置。在使用对称密钥对软件进行签名的情况下,各装置接收此类对称密钥以认证软件。然而,对所有装置上的软件使用同一对称密钥是有风险的,这是因为如果破解了单个装置而获得此类对称密钥,那么会暴露所有其它装置。尽管可使用按装置的对称密钥来对各装置的软件进行签名,但此方法可需要管理大量对称密钥且因此实施起来繁重。或者,可使用私密/公共密钥密码术,其中用私密密钥对软件进行签名且将对应公共密钥散发到装置以认证软件。然而,使用公共密钥进行认证是处理密集的,且对于诸多低功率或具有极小处理能力/资源的装置而言是困难的。因此,私密/公共密钥方法并非切实可行的解决方案。因此,需要一种准许有效地认证在具有不同处理能力的装置上操作的软件的解决方案。
技术实现思路
第一方面提供一种用于在载入于装置内期间验证软件的方法。获得存储于在所述装置内或在所述装置外部的非安全存储器件中的软件。在一个实例中,所述软件可为在所述装置的开机时间载入的操作系统的部分。当载入软件以供执行时,可尝试通过使用预先产生的验证标签来验证软件,以确认正在载入的软件与用以产生预先产生的验证标签的软件相同,同时避免对软件的认证。可从对软件的先前认证获得所述预先产生的验证标签。如果验证成功,那么执行软件。否则,如果验证失败或无预先产生的验证标签可用,那么在载入软件以供装置执行时认证所述软件。应注意,与认证软件相比,验证所述软件可为费时较少的及/或资源密集程度较低的。如果对软件的认证成功,那么基于所述软件及装置特定秘密数据产生用于所述软件的新验证标签。所述秘密数据可仅对所述装置已知及/或在所述装置外部不可存取。举例来说,可基于所述装置内的物理不可复制函数获得秘密数据。接着可存储614新验证标签。在一些实例中,可将预先产生的验证标签及/或新验证标签存储于在所述装置内或所述装置外部的非安全存储器件或不同的非安全存储器件中。在一个实例中,可认证软件,且在成功认证后,就可产生预先产生的(例如,初始、第一、先前,等)验证标签。可存储预先产生的验证标签以供在对软件的后续验证中使用。在一个实例中,认证所述软件可涉及对软件及软件的密码编译签名的密码编译操作。举例来说,认证所述软件可包含使用对软件的签名使用公共密钥认证所述软件。在另一实例中,产生新验证标签可包含产生关于软件且使用装置特定秘密数据的消息认证码(MAC)。在一些实施中,可基于每当获得软件的新版本时发生改变的装置数据而另外产生新验证标签。当产生用于装置中的软件的新验证标签时,装置数据可从不重复。如果对软件的认证失败,那么中止软件的执行。在一个实施中,仅当对软件的验证成功或对软件的认证成功时才执行所述软件。可获得软件的新版本。可在载入软件以供装置执行时认证软件的新版本。如果对软件的新版本的认证成功,那么产生用于软件的新版本的另一验证标签(例如,第二验证标签),其中所述另一验证标签可基于所述软件的所述新版本以及至少装置特定秘密数据或另一装置特定数据。还可存储所述另一验证标签以供后续使用。随后,可在载入软件以供执行时,通过使用所述另一验证标签来验证软件的新版本,以确认正在载入的软件的新版本与用以产生所述另一验证标签的软件的版本相同,同时避免对所述软件的新版本的再认证。根据另一特征,验证标签可另外受可用以停用验证标签的可撤销凭证束缚。举例来说,可在执行验证时由装置检查所述可撤销凭证。所述装置可查询凭证撤销数据库,且验证将在已经撤销所述凭证的情况下失败。因此,即使软件未经修改,在已经撤销对应凭证的情况下,验证仍将失败。另一方面提供一种经配置以在执行之前执行混合式软件认证与验证的装置。所述装置可包括存储装置及处理电路。所述存储装置可用以存储认证指令及/或验证标签产生指令以及验证标签比较指令。所述处理电路可经配置以获得(例如,经由总线或从通信接口检索、读取,等)储存于在装置内或在装置外部的非安全存储器件中的软件。验证标签比较器模块/电路可用以尝试在载入软件以供执行时,通过使用预先产生的验证标签(例如,存储在软件验证标签当中)来验证软件,以确认正在载入的软件与用以产生验证标签的软件相同,同时避免对软件的认证。如果验证失败或无预先产生的验证标签可用,那么软件认证模块/电路可用以在载入软件以供装置执行时认证所述软件。如果对软件的认证成功,那么验证标签产生器模块/电路可用以基于软件及装置特定秘密数据而产生用于软件的新验证标签。新验证标签接着可存储在一或多个软件验证标签当中。此过程达成效率上的改进,这是因为与对软件的认证相比,对软件的验证是费时较少的及/或资源密集程度较低的。因此,尽管认证最初可消耗较多时间或资源,但软件的后续载入由于使用验证而非认证是较迅速且高效的。所述装置还可包含耦合到处理电路的多个一次熔断熔丝,其中另外基于来自所述一次熔断熔丝的状态而产生新验证标签及/或预先产生的验证标签,且每当获得软件的更新版本时,所述多个一次熔断熔丝发生改变。附图说明图1说明用于认证在具有有限处理资源的主机装置上的软件的示范性方法。图2为说明经调适以执行软件认证的示范性主机装置的框图。图3说明用于执行混合式软件认证与验证的第一示范性方法。图4(包括图4A及4B)说明用于执行混合式软件认证与验证的第二示范性方法。图5说明用于在载入于装置内期间验证软件的第三示范性方法。图6说明用于在载入于装置内期间验证软件的第四示范性方法。具体实施方式在以下描述中,给出具体细节以提供对所描述实施方案的透彻理解。然而,所属领域的技术人员将理解,可在无需此些具体细节的情况下实践所述实施方案。举例来说,可以框图展示电路,从而避免以不必要的细节混淆所述实施方案。在其它情况下,可详细展示熟知电路、结构及技术以免混淆所述实施方案。词语“示范性”在本文中用以意味着“充当实例、例子或说明”。在本文中描述为“示范性”的任何实施方案或实施例未必解释为比其它实施例或实施方案本文档来自技高网
...
安全软件认证及验证

【技术保护点】
一种用于在载入于装置内期间验证软件的方法,其包括:获得存储在在所述装置内或在所述装置外部的非安全存储器件中的软件;尝试在载入所述软件以供执行时,通过使用预先产生的验证标签来验证所述软件,以确认正在载入的所述软件与用以产生所述预先产生的验证标签的软件相同,同时避免对所述软件的认证;如果验证失败或无预先产生的验证标签可用,那么在载入所述软件以供所述装置执行时认证所述软件,如果对所述软件的认证成功,那么产生用于所述软件的新验证标签,所述新验证标签是基于所述软件及装置特定秘密数据,及存储所述新验证标签;且其中与认证所述软件相比,验证所述软件是费时较少的及/或资源密集程度较低的。

【技术特征摘要】
【国外来华专利技术】2015.04.15 US 14/687,7831.一种用于在载入于装置内期间验证软件的方法,其包括:获得存储在在所述装置内或在所述装置外部的非安全存储器件中的软件;尝试在载入所述软件以供执行时,通过使用预先产生的验证标签来验证所述软件,以确认正在载入的所述软件与用以产生所述预先产生的验证标签的软件相同,同时避免对所述软件的认证;如果验证失败或无预先产生的验证标签可用,那么在载入所述软件以供所述装置执行时认证所述软件,如果对所述软件的认证成功,那么产生用于所述软件的新验证标签,所述新验证标签是基于所述软件及装置特定秘密数据,及存储所述新验证标签;且其中与认证所述软件相比,验证所述软件是费时较少的及/或资源密集程度较低的。2.根据权利要求1所述的方法,其中从对所述软件的先前认证获得所述预先产生的验证标签。3.根据权利要求1所述的方法,其进一步包括:认证所述软件且产生所述预先产生的验证标签;及存储所述预先产生的验证标签以供在对所述软件的后续验证中使用。4.根据权利要求1所述的方法,其中认证所述软件涉及对所述软件及所述软件的密码编译签名的密码编译操作。5.根据权利要求1所述的方法,其中认证所述软件包含使用对所述软件的签名使用公共密钥认证所述软件。6.根据权利要求1所述的方法,其中产生所述新验证标签包含产生关于所述软件且使用所述装置特定秘密数据的消息认证码MAC。7.根据权利要求1所述的方法,其中所述秘密数据仅对所述装置已知。8.根据权利要求1所述的方法,其中所述秘密数据在所述装置外部不可存取。9.根据权利要求1所述的方法,其中将所述预先产生的验证标签及/或所述新验证标签存储在在所述装置内或在所述装置外部的所述非安全存储器件或不同的非安全存储器件中。10.根据权利要求1所述的方法,其中所述软件是在所述装置的开机时间载入的操作系统的部分。11.根据权利要求1所述的方法,其中基于每当获得所述软件的新版本时发生改变的装置数据而另外产生所述新验证标签。12.根据权利要求11所述的方法,其中当产生用于所述装置中的软件的新验证标签时,所述装置数据从不重复。13.根据权利要求1所述的方法,其中基于在所述装置内的物理不可复制函数获得所述秘密数据。14.根据权利要求1所述的方法,其进一步包括:如果对所述软件的认证失败,那么中止所述软件的执行。15.根据权利要求1所述的方法,其进一步包括:仅当对所述软件的所述验证成功或对所述软件的所述认证成功时才执行所述软件。16.根据权利要求1所述的方法,其进一步包括:获得所述软件的新版本;在载入所述软件以供所述装置执行时认证所述软件的所述新版本,如果对所述软件的所述新版本的认证成功,那么产生用于所述软件的所述新版本的另一验证标签,所述另一验证标签是基于所述软件的所述新版本以及至少所述装置特定秘密数据或另一装置特定数据,及存储所述另一验证标签。17.根据权利要求16所述的方法,其进一步包括:尝试在载入所述软件以供执行时,通过使用所述另一验证标签来验证所述软件的所述新版本,以确认正在载入的所述软件的所述新版本与用以产生所述另一验证标签的所述软件的版本相同,同时避免对所述软件的所述新版本的再认证。18.根据权利要求16所述的方法,其中所述新验证标签是另外基于可...

【专利技术属性】
技术研发人员:A·甘特曼D·M·雅各布森
申请(专利权)人:高通股份有限公司
类型:发明
国别省市:美国,US

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

1