在固件上的更新认证制造技术

技术编号:2828062 阅读:179 留言:0更新日期:2012-04-11 18:40
一种用于验证嵌入在附件中的程序代码的完整性的方法,所述附件具有一个用于存储该程序代码和与该程序代码相关的数据的存储器设备,该存储器设备中所有未使用的存储器空间被填充随机数据,该主机可以访问该存储器设备的存储器镜像,所述方法包括如下步骤:    发送一个存储器地址列表到该附件;    从该附件接收一个值,所述值是根据所述列表中的指定存储器地址处的存储器值生成,并且代表了所述列表中的指定存储器地址处的存储器值;    根据存储器镜像和所述列表产生一个预期值;    将从该附件接收的所述值与所述预期值进行比较;    其中如果所述接收的值与所述预期值等价,则该程序代码的完整性得到验证。

【技术实现步骤摘要】
【国外来华专利技术】在固件上的更新认证专利
本专利技术一般涉及密码学领域。具体而言,本专利技术涉及提供一种价 格低廉、基于软件的安全更新解决方案,用于验证嵌入式系统中的程 序代码的完整性。
技术介绍
计算机系统通常使用外围设备来补充其功能。在此处上下文中, 计算机系统被称为主机系统,而其外围设备被称为附件。附件通常是能够进行计算的设备,因为它们通常是使用微处理器或微控制器构建 的,这些微处理器或微控制器可以利用程序代码、微码或固件进行编 程或重编程。这些附件的功能和正确运作均依赖于位于该附件中的程 序代码的正确性。有些情况下,因为在程序代码中发现了缺陷,需要升级或更新已 实施的附件。例如,有必要对在诸如医疗设备之类的高价值应用中的 高风险仪器进行升级。这些类型的设备通常由政府来管制。当发现缺 陷并进行重新设计时,可以使用快速的临时解决方案。因此,将这样 的解决方案应用到已经配置在实地的设备,会是理想的。个体可能会恶意改动附件的程序代码,以使其执行从主机系统角 度来说是未授权的操作,却通过报告行为正常来欺骗主机系统相信没 有出差错。理想的是任何对附件程序代码的未授权修改可以在进行升 级之前被检测到,且只有在未检测到此类未授权修改的时候才进行升 级。对此问题的一个解决方案是,在实施附件之前,例如通过使用安 全微控制器在附件中设计安全措施,该安全微控制器在接受微码升级 之前对所有微码升级进行认证。然而有时情况是这样,当首次实施附 件的时候,安全上的考虑和风险级别都较低,但随着时间的过去,情 况变化了,以至于与不安全附件相关的风险不可预期地增加了。对附件进行替换或对附件作出硬件改变的成本可能被认为太过昂贵,在这 种情况下,主机系统在高危环境中具有不安全的附件。对此问题的不成熟的解决方案是允许该主机系统从附件读取全部 程序代码,使用安全散列函数计算摘要,并且将结果与某个本地维持 的摘要进行比较。这种方法有两个问题。首先,该附件可能会被重新 编程,以使之维持原程序代码的副本,篡改来自该主机系统的读取请 求,并且向该主机系统返回所存储的原程序代码镜像。其次,存储在 附件中的程序代码可能太大而无法有效地通过慢速串行连接来传输, 或可能甚至不能被远程访问。在这些情况下,计算一个返回到主机系 统用于验证的摘要更有效率。简单地计算一个摘要,即使使用挑战-响应机制,也许都不能有效 地克服一个被改变的附件,该附件在其存储器中的某处维持了原程序 代码的副本。本专利技术的一个目的是减轻或消除上述缺点中的至少一个。
技术实现思路
一般地,本专利技术包括用高熵随机数据填充附件设备上的所有可以 被用于存储程序代码镜像的未使用的存储器。主机系统也必须能够访 问该附件的包括该随机数据的存储器镜像的可信任副本。附件中现有的程序具有一个可被主机系统调用的应用程序接口(API)。如果该附件尚未具有一个额外API,可以在需要包括一个额外 API时重写该附件。该主机系统使用该API向该附件发送一个该附件 上的存储器地址列表或存储器范围。该列表总是不同的,并且确实是 不可预测的,以防止该列表^L该附件预先猜测到。然后,该附件将产 生 一个代表值,该代表值是根据该列表和该列表所涉及的附件设备存 储器的值确定的。优选地,该代表值是一个摘要,该摘要使用提供的 存储器地址处的存储器值作为安全散列函数的输入。由该附件产生的 结果摘要被返回到主才几系统用于有效性验证。通过将存储器填充随机数据,防止了攻击者在附件上拥有足够空 间来替换程序镜像并维持旧的程序镜像。攻击者不能通过仅替换程序 镜像而不先向该附件增加额外存储器来改变该附件,这使得攻击者需要对硬件作出改变。通过向存储器填充随机数据,从而在认证过程中 隐含包括该随机数据,进一步防止了攻击者对程序镜像做出未授权的 改动而不被发现。最终结果是,该主机系统能够一定程度地确信该附件的程序代码 未被恶意改变。附图说明为了说明,而不是限制,通过示例的方式参见附图更详细地解释实施方案,其中图1是示出了与附件进行通信的主机系统框图;图2是图解了用于验证图1中所示的附件中的程序代码的完整性 的方法的步骤的流程图;图3示意性示出了在图1中所示的附件上的填充了随机数据的未 使用的空间以及在该附件上由该主机系统随机选定的存储器的范围。具体实施方式下面的描述以及在此描述的实施方案都是以对本专利技术原理的具体 实施方案的一个实施例或多个实施例的说明的方式来提供。这些实施 例是为了解释而不是为了限制那些原理和本专利技术而提供的。在下面的 描述中,相同的部分在整个说明书中和附图中都各自用相同的参考数 字标注。参见图1,示出了与附件22进行通信的主机20。主机20通常是 具有CPU 24、可由CPU 24访问的主才几存储器i殳备26、也可由CPU 24 访问的主机存储媒介28以及一些输入和输出设备(未示出)的计算机 系统。应用程序30在CPU24上执行。应用程序30可净皮存储在主才几存 储媒介28上,其中主机存储媒介28可被永久性地安装在主机20之中、 可从主机20中移除或被主机20远程访问。应用程序30与附件22通 信,并指示它的操作。附件22—般具有某些计算能力。通常,它具有一个微处理器或一 个微控制器32。附件22也可以具有其他类型的具有足够计算能力的 可编程处理器。比如,附件22可以是配备有DSP(数字信号处理器)或FPGA (现场可编程门阵列)的附件。该处理器或微控制器32通常可以 访问存储器存储空间,该存储器存储空间可以分为附件存储器设备34 以及易失性存储器设备36。固件程序代码38或嵌入式程序代码或微 码在微处理器32上执行,且补充在主机20上执行的应用程序30,以 进一步控制附件22的操作。固件程序代码38和永久性(恒定)数据可以存储在附件存储器设 备34中,或任何永久性媒介中。易失性数据,即涉及该程序操作状态 的数据,可以存储在易失性存储器设备36上。附件存储器设备34或 易失性存储器设备36也可以用来存储半永久性数据,即在供电周期 (power cycle)之间恒定,但可在每个供电周期中被编程修改的数据。在需要时,数据链路40在应用程序30和固件程序代码38之间提 供一个通信信道。数据链路40可以是有线的或无线的。比如,它可以 是一个接线电缆或一个射频连接。它可以是一个在主机20与附件22 之间的直接连接或是通过某些中间主机系统的中继连接。数据链路40 可以是一个永久性的,或更优选地是一个应要求创建的连接。应用程序30和固件程序代码38每一个均具有应用程序接口 (API),用于彼此进行通信。具体地说,如随后将描述的,固件程序代 码38具有 一个API,应用程序30调用该API来转发一个存储器地 址列表; 一个API,通过该API,固件程序代码38返回一个代表值, 例如基于一个存储器地址列表的内容计算出的摘要。尽管从概念上讲, 固件程序代码38 ,皮描述为具有两个独立的API,这两个独立的API在 实践中可以被实现为一个单API。应用程序30也具有用于发送该存储 器地址列表和用于接收返回的代表值的相应API。在此处虽然作出了区分, 一个主机存储器设备26倾向于用于存储 更多易失性数据,而一个主机存储器媒介28倾向于用于存储更多永久 性数据,但是主机20可以只具本文档来自技高网
...

【技术保护点】

【技术特征摘要】
【国外来华专利技术】1.一种用于验证嵌入在附件中的程序代码的完整性的方法,所述附件具有一个用于存储该程序代码和与该程序代码相关的数据的存储器设备,该存储器设备中所有未使用的存储器空间被填充随机数据,该主机可以访问该存储器设备的存储器镜像,所述方法包括如下步骤发送一个存储器地址列表到该附件;从该附件接收一个值,所述值是根据所述列表中的指定存储器地址处的存储器值生成,并且代表了所述列表中的指定存储器地址处的存储器值;根据存储器镜像和所述列表产生一个预期值;将从该附件接收的所述值与所述预期值进行比较;其中如果所述接收的值与所述预期值等价,则该程序代码的完整性得到验证。2. 权利要求1的方法,其中所述值是一个如在所述列表中指定的序列 中的所述指定存储器地址处的所述存储器值的连接。3. 权利要求1的方法,其中所述值是一个用安全散列算法计算的摘要, 该算法使用在所述指定存储器地址处的存储器的所述值作为其输入,且 所述预期值是一个使用第二安全散列算法计算的预期摘要,该第二安全 散列算法与所述安全散列算法等价。4. 权利要求3的方法,还包括如下步骤 向该附件发送一个随机数据字符串,其中该摘要是通过把所接收的随机数据字符串作为附加输入计算的, 且该预期摘要是把该随机数据字符串作为第二输入产生的。5. —种为认证附件的固件程序代码而制造该附件的方法,所述固件程设备中,^述方法包括下述步骤:、'》、 '''为所述固件程序代码提供一个用来从主机接收一个地址列表的第一API,所述地址与所述固件程序代码可寻址的存储器地址相应,为所述固件程序代码提供一个用于根据所述列表和在所述列表中指定的所述地址处的存储器的值产生一个代表值的密码程序,为所述固件程序代码提供一个用于将所述代表值返回所述主机的笫二 API,将所有未被所述固件程序代码和所述数据占据的存储器设备的存储器空间填充随机数据,以及提供一个所述存储器设备的存储器镜像,用于参考,其中如果在认证操作中所述代表值与预期代表值等价,则所述固件程序代码被认证,所述预期代表值是由所述主机...

【专利技术属性】
技术研发人员:A·韦德卡B·尼尔
申请(专利权)人:塞尔蒂卡姆公司
类型:发明
国别省市:

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

1
相关领域技术
  • 暂无相关专利