安全的软件下载与启动方法与流程

文档序号:12176575阅读:691来源:国知局
安全的软件下载与启动方法与流程

本发明涉及安全芯片设计技术领域,特别是涉及一种安全的软件下载与启动方法。



背景技术:

攻击者可以通过物理攻击手段改写存储器中的程序从而达到非法目的。这种攻击一般在设备关机状态下进行。

另外,设备在生产后,一般都需要根据各个用户的个性化需求,使用不同的应用程序。这些应用程序都是存储在设备的非易失性存储器中。这就意味着设备在生产后是会有一个下载通道供用户下载应用程序的。

这种下载通道同样存在被攻击者利用来达到下载非法程序,破坏设备的安全性的目的。

如何防止这些攻击手段,使得设备更加安全,就是本发明所要解决的问题。



技术实现要素:

本发明要解决的技术问题是提供一种安全的软件下载与启动方法,能够抵御攻击者采用不同手段对设备进行的攻击,提高设备的安全性。

为解决上述技术问题,本发明的安全的软件下载与启动方法,包括如下步骤:

步骤1、采用硬件逻辑电路校验由软件实现的启动程序;

步骤2、由所述启动程序或硬件逻辑电路读取下载标志字段;

步骤3、如果所述下载标志字段显示目前设备处于可下载应用程序阶段,则启动程序校验下载指令处理程序,然后执行下载指令处理程序;

如果所述下载标志字段显示目前设备处于不可下载应用程序阶段,则启动程序校验应用程序,然后执行应用程序。

所述安全的软件下载与启动方法采用的另一方案,包括如下步骤:

步骤A、硬件逻辑电路读取下载标志字段;

步骤B、所述硬件逻辑电路校验由软件实现的启动程序;

步骤C、如果所述下载标志字段显示目前设备处于可下载应用程序阶段,则启动程序校验下载指令处理程序,然后执行下载指令处理程序;

如果所述下载标志字段显示目前设备处于不可下载应用程序阶段,则启动程序校验应用程序,然后执行应用程序。

采用本发明的方法,采用硬件逻辑电路来校验由软件实现的启动程序,能够保证启动程序没有被攻击者篡改。这是由于硬件逻辑电路相比软件程序而言,不容易被攻击者攻击。

采用本发明的方法,使得攻击者难以通过攻击手段来利用设备原有的下载指令处理程序来实施攻击获取设备的机密信息,启动过程中的对运行程序的校验,也使得攻击者在设备关机状态下对设备程序的篡改在启动过程中会被校验出来,而不会被执行。这些都使得设备更加安全。

附图说明

下面结合附图与具体实施方式对本发明作进一步详细的说明:

图1是所述安全的软件下载与启动方法流程示意图;

图2是图1中下载指令处理程序流程示意图。

具体实施方式

所述安全的软件下载与启动方法,包括硬件校验程序,软件启动程序,下载指令处理程序。该方法可以实现安全的软件下载和自启动。使用该方法的设备在非易失性存储器中存储着下载标志字段;也存储着启动程序,下载程序和应用程序各自的长度字段和自校验字段。

参见图1,应用所述安全的软件下载与启动方法的设备在启动后,首先由硬件逻辑电路来校验由软件实现的启动程序。这是由于硬件逻辑电路相比软件程序而言,不容易被攻击者攻击,所以由硬件逻辑电路先来校验软件实现的启动程序,保证启动程序没有被攻击者篡改。然后启动程序或者硬件逻辑电路去读下载标志字段。如果是启动程序去读,那么这一步就必须在硬件逻辑电路校验启动程序这一步之后;如果是硬件逻辑电路去读,那么这一步可以和硬件逻辑电路校验启动程序这一步交换次序。这是因为硬件逻辑电路去读的话,这两步的安全性是一样的;而软件启动程序去读的话,启动程序的安全性是由硬件逻辑电路的校验结果保证的,所以次序不能换。

下载标志字段需要多位冗余表示,并且表示可以下载的条件是等于某个固定数,其他都表示不可下载,这样当非易失性存储器受到攻击时,不容易造成安全问题。所谓的安全问题是指,当设备应该处于不能下载应用程序的阶段时,由于受到攻击,使得设备变为可以下载应用程序了。如果采用1比特作为下载标志字段时,受到攻击后,1比特很容易翻转,从而产生安全问题。当采用多比特,比如用32比特表示时,要把32比特攻击成一个特定的数,明显比攻击使1比特翻转来的难很多。

如果读到下载标志字段显示目前设备处于可下载应用程序的阶段,那么启动程序就校验下载指令处理程序,然后执行下载指令处理程序;如果该下载标志字段显示目前的设备处于不可下载应用程序的阶段,那么启动程序就校验应用程序,然后执行应用程序;也就是说在应用程序或者下载指令处理程序被执行前,都是由启动程序校验过的,以此来保证应用程序或者下载指令处理程序没有被攻击者篡改。

对于下载指令处理程序来说,待下载的应用程序是写在下载指令的数据段中来传送过来的。

结合图2所示,首先,下载指令处理程序会启动接收。收到下载指令后,先校验指令格式是否正确。如果下载指令格式不正确的话,就继续等待接收;如果下载指令格式正确的话,就把指令中的数据段依次写入存放程序的非易失性存储器中;然后再看下载指令中的最后数据标志字段是否是最后一次传送数据,如果不是,那么继续启动接收下一条下载指令,如果是最后的一次传送数据,那么就改写应用程序的长度字段,自校验字段,下载标志,最后下载指令处理程序自毁。在下载完后下载指令处理程序自毁,这可以使得攻击者无法再通过攻击手段利用这个下载指令处理程序下载非法程序。自毁可以通过把程序中的某段代码改写成无效代码来实现,也可以通过把下载指令处理程序的自校验字段写入错误值来实现。

上述硬件逻辑电路校验软件实现的启动程序,启动程序校验下载指令处理程序,启动程序校验应用程序;这些描述里面的校验功能,具体实现可以是从固定地址开始,先读待校验程序的长度字段,然后根据长度字段再读一遍长度字段,再读整个程序段,在读的同时会计算校验值,读完后,计算出的校验值再与存在程序段末尾的校验字段比较是否一致,如果一致,校验就通过,否则校验就不通过。校验时,要再读一遍长度字段是为了把长度字段也包含进待校验数据中,这就能保护长度字段如果被攻击者篡改也能被校验出来。

另外,下载指令中包含数据次序字段,数据次序字段表示本次下载指令中的数据是第几个数据,在校验指令格式是否正确的时候,也要检查数据次序字段是否正确,如果次序字段显示本次数据不是紧接着要接收的,这同样被认为是指令格式不正确。

下载标志字段,只有在设备生产时才能写成表示可下载的固定值,并且在写成固定值之前需要执行全擦操作,把设备的存储器中的数据清空;在生产后就只能从这个固定值写为其它值了。这由设备的存储器权限管理模块实现;由设备的外部管脚的电平来表示设备是处于生产阶段还是生产后的阶段;在生产的最后一步,物理地,不可逆地破坏这个外部管脚。这样才能保证标志字段在生产后不被从不可下载的状态改为可下载状态,从而被攻击者利用下载非法程序。在写之前需要执行全擦操作,把设备的存储器中的数据清空,也是为了万一被攻击者攻击成可下载状态了,那么也能保护存储器中的机密数据不被攻击者获得。

启动程序的长度字段和自校验字段在生产后是不能被改写的,应用程序的长度字段和自校验字段在下载标志表示不可下载的时候,就不能被改写了,这由设备的存储器权限管理模块实现。这些都是为了防止攻击者篡改这些字段,从而使得启动程序对应用程序的校验失效。

通过以上的种种措施,互相配合,特别是下载完成后自毁下载指令处理程序这一点,使得攻击者难以通过攻击手段来利用设备原有的下载指令处理程序来实施攻击获取设备的机密信息,启动过程中的对运行程序的校验也使得攻击者在设备关机状态下对设备程序的篡改在启动过程中会被校验出来而不会被执行。这些都使得设备更加安全。

以上通过具体实施方式对本发明进行了详细的说明,但这些并非构成对本发明的限制。在不脱离本发明原理的情况下,本领域的技术人员还可做出许多变形和改进,这些也应视为本发明的保护范围。

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