用于安全软件更新的系统和方法技术方案

技术编号:9467518 阅读:103 留言:0更新日期:2013-12-19 03:47
一种安全软件更新向目标设备提供具有更新定义、私有加密密钥和公共签名密钥的更新实用程序。在便携式介质上准备软件更新分组,其包括可执行更新程序、利用对称密钥加密的程序的校验和、利用公共加密密钥加密的经过加密的对称密钥以及利用私有签名密钥准备的数字签名。该更新过程对数字签名进行认证,使用私有加密密钥对对称密钥进行解密,并且使用对称密钥对校验和进行解密。为可执行更新程序生成新校验和并且将其与经过解密的校验和进行比较。如果在更新过程期间检测到不一致,则该过程被终止。否则,可以以防止损坏、病毒和第三方干扰的相对较高程度的保证来安装软件更新。?

【技术实现步骤摘要】
【国外来华专利技术】【专利摘要】一种安全软件更新向目标设备提供具有更新定义、私有加密密钥和公共签名密钥的更新实用程序。在便携式介质上准备软件更新分组,其包括可执行更新程序、利用对称密钥加密的程序的校验和、利用公共加密密钥加密的经过加密的对称密钥以及利用私有签名密钥准备的数字签名。该更新过程对数字签名进行认证,使用私有加密密钥对对称密钥进行解密,并且使用对称密钥对校验和进行解密。为可执行更新程序生成新校验和并且将其与经过解密的校验和进行比较。如果在更新过程期间检测到不一致,则该过程被终止。否则,可以以防止损坏、病毒和第三方干扰的相对较高程度的保证来安装软件更新。【专利说明】关于联邦政府资助研发的声明N/A
本专利技术总体上涉及在安装之前验证软件的软件更新机制,并且更具体地涉及在安装之前利用安全验证的软件更新的实施方式。
技术介绍
可以为运行软件应用程序的各种类型的设备(包括通常以独立的基础操作的嵌入式设备)提供在它们的有用寿命周期过程中的软件更新。在计算机设备(诸如桌上型PC和其他通用计算机)的情况下,通常通过通信链路来执行更新,诸如可以被提供有到LAN、WAN、内联网或因特网的网络连接。通信链路允许计算机下载或检索可以相对较容易地安装到计算机上的更新。在包括计算引擎和软件的独立设备(诸如常常存在于嵌入式系统中)的情况下,趋向于利用物理部件来实施软件更新。例如,可以通过替换被编程为包括新软件更新的ROM来更新某些独立设备。另一方法可能是将RAM卡或加载软件替换成来自磁或电介质的半永久性存储器。在一些情况下,通过将通信链路(诸如网络连接)应用于设备以上传新软件来更新嵌入式系统。所出现的关于软件更新安装的一个问题是在软件的安装和执行之前验证软件更新。例如,通常进行验证来确保软件没有被病毒感染、修改或损坏。一种验证软件的流行技术是计算用于软件更新安装的给定文件的校验和。通常,软件更新是二进制或图像类型文件的形式,可以容易地将校验和算法应用于所述文件。典型校验和算法是MD5(消息摘要算法5)算法,在其中根据递归算法来组合算法所应用于的文件块以产生表示文件内容的高度唯一编号。MD5有时被称为加密散列函数,并且提供128位的散列值或校验和。因为不同文件内容产生相同校验和的极其低的可能性,MD5通常被用于确认伴随文件的完整性。因为软件更新所涉及的潜在安全性问题(诸如损坏、修改或恶意代码被嵌入到软件更新文件中),所以已经开发了进一步保护用于软件更新的软件文件的技术。安全措施可以包括保护文件内容和/或校验值免受篡改或损坏的技术。一种这样的安全性技术是将加密应用于文件内容和/或校验和值,诸如可以通过使用用于对数据进行加密和解密的公共/私有密钥对来实现。这种类型的非对称加密使用私有密钥来对使用公共密钥加密的数据进行解密。如果要使用这种类型的安全来更新特定设备的软件,则私用密钥将被分发给要被更新的这个设备,这趋向于阻止公共/私有密钥对安全设计的目的。可能用于保护数据的另一安全措施是获得并应用与电子签名相结合的数字证书。该数字证书对文档源自所声称的来源提供高水平验证。典型地,文档或数据被处理以产生相对唯一值,诸如散列值或校验和。使用签名者的非对称公共/私有密钥对的私有密钥来对所述散列值或校验和进行加密以产生数字签名。使用数字签名来形成数字证书,结果得到被传送到远程位置并且通过下面这样在远程位置处进行认证的数字签名的数据:即通过提取原始数据、计算该数据的散列值或校验和、使用公共/私有密钥对的公共密钥对该数字签名进行解密以获得原始散列值或校验和,并且然后将所计算的和所传送的散列值或校验和进行比较以确定该数字签名是否有效并且认证数据的来源和完整性。然而,数字证书通常提供有届满日期来帮助确保证书的当前有效性和结果产生的数字签名。此外,常常验证数字证书自身的有效性以确保它们是当前有效的,该检查常常通过通信链路来完成以便在持续的基础上维护数字证书。在独立设备的情况下,数字证书的使用表示一种通常昂贵但高度维护安全的技术,其通过假设将被更新设备所利用的通信链路来允许弓I入其他安全间隙。提供安全更新环境的另一方法是实施内核级保护以便为更新创建一个可信任环境。然而,该方法具有一些与上面提到的相同的缺点,由于软件更新的安全特征将被递送到设备来允许更新,由此暴露要检查的安全特征。此外,多个系统通常以全内核模式操作,这通常不能实现与内核级保护一致的可信任环境。对于安全软件更新的另一选项是利用具有机载软件更新的硬件加密设备。然而,这种类型的安全实施方式引入与要被更新的设备或者其操作系统的兼容性问题,所以这样的硬件加密设备不能与多个系统一起使用。此外,硬件加密通常通过访问数字证书或者非对称或对称加密密钥来操作,该访问通常依赖于提供给正在被更新的设备的通信链路。总之,不存在不涉及附加成本、复杂性和通信链路的潜在安全间隙的在安装到设备上之前确认软件更新的显而易见且容易使用的技术。
技术实现思路
根据本公开,提供一种安全软件更新机制,其不依赖于下面这样的情况,即对于要被应用软件更新的设备来说通信链路是活动的。在该软件更新被安装之前,使用安全机制来确认和验证该软件更新以防止安装可能被损坏的更新,所述损坏包括不被授权的恶意软件或者遭受其他类型的完整性/安全性问题。可以使用外部硬件设备来应用软件更新,诸如软件更新可以被附接到要被更新的设备的输入/输出端口。外部硬件设备的示例包括端口可串联或并联连接的设备、USB类型的设备(诸如USB闪存驱动器)、以及可存储软件更新分组的任何其他便携式可连接的硬件设备。根据示例性实施例,将接收到软件更新的设备包括更新实用程序,该更新实用程序在被激活时搜索外部可连接存储设备上的特定位置处的特定数据。如果更新实用程序将预定数据定位于外部连接的存储设备中的预定位置处,则可以进行确认和验证过程,而检测适当数据和位置的失败促使该更新实用程序终止。根据本公开的示例性实施例,通过计算在软件更新中使用的文件的校验和并且将可执行更新文件中的校验和打包来实施确认和验证过程。然后处理该可执行更新文件以便生成分组校验和,然后利用对称密钥或会话密钥来对该分组校验和进行加密。然后利用公共密钥对会话密钥本身进行加密,所述公共密钥的互补私有密钥被嵌入在更新实用程序中,该更新实用程序驻存在要对其应用软件更新的设备中。然后利用公共/私有密钥对的私有密钥对经过加密的会话密钥进行数字签名以产生数字签名。例如,诸如通过将私有密钥安全地保持在软件更新生成器处的位置上来使该私有密钥保密。公共/私有密钥对的公共密钥被嵌入在驻存于要接收软件更新的设备上的更新实用程序中。安全分组校验和、安全会话密钥和数字签名都被放在一个文档(诸如XML文件)中,然后将其存储在要被用来执行对接收到软件更新的单元的更新的硬件设备上。用于执行软件更新的可执行和/或数据文件也被存储在存储设备上以实现发布分组,该发布分组包括用于确认、验证和安装软件更新的所有文件和数据。根据本公开的示例性实施例,通过激活驻存在设备上的软件更新实用程序来实施对设备的软件更新。更新实用程序找出用于进行更新的特定文件和数据所位于的所连接的存储设备。根据本公开的一个方面,更新实用程序尝试检测存储设备中的明确位置处的明确文件或数据,并且如果数据本文档来自技高网
...

【技术保护点】

【技术特征摘要】
【国外来华专利技术】...

【专利技术属性】
技术研发人员:B阿布拉罕K米勒
申请(专利权)人:西门子医疗保健诊断公司
类型:
国别省市:

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

1