保障一存储器中的固件安全的方法及系统的制作方法

文档序号:6614651阅读:179来源:国知局
专利名称:保障一存储器中的固件安全的方法及系统的制作方法
技术领域
本发明是关于内嵌式系统,尤指可以保障一存储器中的固件安全的方法 及系统。
背景技术
视频游戏机(video game console),像是PS2TM或是XboxTM等等,都是将 固件存放在内嵌式存储器,来控管其操作的内嵌式系统。譬如说,固件中可 能包含有用来辨识有授权的正版游戏CD-ROM的程序码。这样的固件应该要 保密,才能防止被不当的修改或是更新,以避免未授权的盗版游戏CD-ROM 的使用。
一般而言,当内嵌式存储器中没有固件时,为了要使内嵌式存储器可以 被更新,所以内嵌式系统就会内建提供有一条额外的路径,像是整合驱动电 子装置(Integrated Drive Electronics, IDE)或是任何一种串列周边介面(Serial Peripheral Interface, SPI)。通过这么一条额外的路径,不论内嵌式存储器中原 本是否存在有一固件,主机(譬如一个人计算机)便可以将固件更新或是写入内 嵌式存储器。只是,这么一条额外的路径同时也提供了固件被不当读取的可 能。
这个问题的一种解决方法,是在使用这额外的路径之前,要求使用者输 入一个密码(password)。如果所输入的密码跟集成电路上的一验证码一致,那
这额外的路径就可以存取内嵌式系统中内嵌式存储器内的固件。只是,如果 验证码是以硬件的方式实现在一颗集成电路(integrated circuit, IC)上,那所有
的这类内嵌式系统的使用者都会使用相同的验证码,这会导致验证码的保密 工作会变的很困难或是不可能。如果IC中有些电子式熔丝(electric foses)来产
生个人所希望且独特的验证码,那不只是电子式熔丝会增加整个IC的面积,
连带的,电子式熔丝也需要有特别的制造工艺来制造,两者都会增加非常多 的成本。

发明内容
本发明实施例提供一种保障一存储器中的固件安全的方法。所述的存储 器中的存储器数据被检查。如果所述的存储器中的所述的存储器数据符合一 条件,则允许一主机读写整个所述的存储器。如果所述的存储器中的所述的 存储器数据不符合所述的条件,则防止所述的主机读取至少所述的存储器的
一部分。
本发明实施例也提供一种存储器模块。 一存储器用以保存存储器数据。 一存储器检查模块连接到所述的存储器,检查所述的存储器数据。当所述的 存储器数据符合一条件时,所述的存储器检査模块送出一致能信号。当所述 的存储器数据不符合所述的条件时,所述的存储器检査模块停止所述的致能 信号。 一下载模块连接于所述的存储器与一主机之间。当所述的致能信号被 送出时,所述的下载模块允许所述的主机读取整个所述的存储器。当所述的
致能信号被停止时,所述的下载模块防止所述的主机(host)读取至少所述的存
储器的一部分。
本发明实施例也提供一种固件更新方法。将原始数据从一主机,通过一 下载路径(download path),写入一内嵌式存储器(embedded memory)。读取所
述的内嵌式存储器中一被写入的部分。依据从所述的内嵌式存储器中所读到 的数据,产生一验证结果,并提供给所述的主机。所述的验证结果所带有的 信息少于所述的所读到的数据。所述的主机无法读取所述的内嵌式存储器中 所述的被写入的部分。所述的主机依赖所述的验证结果来确认写入的结果。
本发明实施例也提供一种固件更新系统。 一下载模块连接于一主机与一 内嵌式存储器之间,可提供一下载路径与所述的主机,来将原始数据写入所
述的内嵌式存储器中。 一验证模块读取所述的内嵌式存储器中一被写入的部 分,并依据从被写入的部分所读到的数据,产生提供一验证结果至所述的主 机。所述的验证结果所带有的信息少于所述的所读到的数据。所述的主机无 法读取所述的内嵌式存储器中所述的被写入的部分。所述的主机依赖所述的 验证结果来确认写入的结果。
本发明用很少的成本且用传统的制造工艺技术,便可以有效地隐密内嵌 式存储器中所存放的固件。


图1与图2为通过标准介面连接在一起的一内嵌式系统与一主机的功能 方块图。
附图标号
主机 10;标准介面~11;
微处理器 12;内嵌式系统 13;
存储模块 14;内嵌式存储器 16;
下载模块 18;存储器检查模块 20;
抹除模块 22;内嵌式系统 23;
存储模块 24;下载模块 26;
验证模块 28;先入先出存储器 30。
具体实施例方式
图1为通过标准介面连接在一起的一内嵌式系统与一主机的功能方块图。
主机10可以是一个人电脑。标准介面11可以是一 IDE总线或是任何一种SPI 介面。内嵌式系统13包含有一微处理器12以及一存储模块14。存储模块14 包含有下载模块18、内嵌式存储器16、存储器检査模块20、以及抹除模块 22。内嵌式存储器16可以是一序列(serial)或是平行(pamllel)闪存存储器(flash
memory),用来存放微处理器12操作时所依据的固件。内嵌式存储器16可以 置于 一 多晶片模块(multi-chip module , MCM)或是于一系统单晶片 (System-on-chip, SOC)设计中。下载模块18与存储器检査模块20—起执行 如同警卫的工作,来决定是否内嵌式存储器16中的存储器数据可以公开予主 机10。当收到一个抹除触发(emse-trigger)信号时,抹除模块22可以将内嵌式 存储器16中的存储器数据抹除。
于本发明的一个实施例中,如果内嵌式存储器16不是"空"的,就禁止 内嵌式存储器16中的存储器数据公开或是释放给主机10。即如果内嵌式存储 器16中的存储器数据不符合条件,则内嵌式存储器16会被假定为不是"空" 的。譬如说,因为固件中的指令或是数据一般都是混杂着0跟1,故若存储器 数据全部为0或是全部为1,那内嵌式存储器16就会被判定是空的,反之即 被判定为不是"空"的。换言之,如果存储器数据具有一预设的特征,那内 嵌式存储器16就可被判定是空的。当然,也有其他可能的判定方式。譬如说, 如果存储器数据的循环冗余校验码(cyclic redundancy check, CRC)与预设结果 一样,那内嵌式存储器16就可以被判定是空的。
因此,在允许主机读写整个内嵌式存储器16之前,存储器检査模块20 先检査内嵌式存储器16中的存储器数据,并且依据先前所描述的条件,判定 内嵌式存储器16是否是空的。存储器检查模块20可以检查整个内嵌式存储 器16或是其中的一部分。如果内嵌式存储器16中的存储器数据符合条件, 存储器数据就被判定是空的,那存储器检査模块20就送出一致能信号,下载 模块18便据以在主机IO与内嵌式存储器16之间提供一下载路径。如果存储 器数据不符合条件,存储器数据就被判定不是空的,那存储器检査模块20就 停止所述的致能信号,因此下载模块18也取消了那下载路径,而主机10就 无法读取内嵌式存储器16中的存储器数据。
触发或启动存储器检查模块20来检査内嵌式存储器16中的存储器数据 的时间必须发生在允许主机10读写整个内嵌式存储器16之前。譬如说,触
发或启动存储器检査模块20可以发生在当整个内嵌式系统13(包含有存储器 模块14)开始被供电时,所以内嵌式系统13开机供电之后,由存储器检查模 块20发出的致能信号就维持在送出状态或是停止状态。另一种做法(亦可算是 一额外的步骤),是主机10在每次想要尝试去更新内嵌式存储器16之前,就 必须先送出一个检查触发信号给存储器检査模块20,以执行检査的动作。
在主机10与内嵌式存储器16之间的下载路径被取消的状态下,主机10 至少不能读取内嵌式存储器16中的一部分,因此,可能带有官方固件的存储 器数据,整体上而言,是隐密而不可知的。在下载路径被取消的状态下,至 少有一部分的内嵌式存储器16是无法被主机10所读取的。可能的状况描述 如下主机完全无法读取内嵌式存储器16的任何部分;主机10仅能读取一 部分的内嵌式存储器16;或是仅能读取内嵌式存储器16中的存储器数据经过 计算后的一个逻辑结果。在这个状态(下载路径被取消的状态)下,内嵌式存储 器16可能可以容许主机10进行写入的动作。
如上所述, 一预设的特征可以当作一个条件,来作为判定内嵌式存储器 16是否是空的依据。为了使制造厂商出货后的内嵌式系统13可以被一主机 IO写入固件,内嵌式存储器16可以在制造厂商的一测试阶段中,如于内嵌式 存储器16还没有装设到内嵌式系统13中前,就预先"净空",及先写入具 所述的预设特征的数据。如此,当内嵌式存储器16装设到内嵌式系统13后, 存储器检查模块20就会开启下载路径,使主机10可以将新固件写入内嵌式 存储器16中。
内嵌式存储器16中的固件有可能因错误而需要更新的时候。尤其是当内 嵌式存储器16被判定不是空的时候,抹除模块22便提供了一种更新内嵌式 存储器16中固件的方法。依据主机10所送出的一抹除触发信号,抹除模块 22使内嵌式存储器16执行抹除,并且必要时,对内嵌式存储器16写入数据, 使内嵌式存储器16中的存储器数据可以被判定为空。如此,存储器检査模块 20会判定内嵌式存储器16为空的,开启下载路径,主机10便可以对整个内
嵌式存储器16进行读与写的动作,也可写入新的固件。所以,不论被抹除的 存储器数据中是正常的或是有错误固件,它都已经被抹除,无法被主机10通 过标准介面11来读取。
如同业界所知的,当一主机连接到一内嵌式系统时,写入原始数据到内 嵌式存储器的动作之后,往往接着从内嵌式存储器中读取刚刚写入的数据, 以验证原始数据跟刚刚写入的数据有没有一致(一样),借以确认写入动作是否 真的成功无误。这样的读取过程也造成内嵌式存储器中的固件曝光的可能。 图2中的实施例变更了读出路径(readoutpath),而以提供一验证结果给主机做 取代,借以确保内嵌式存储器中的数据免于曝光。
图2为通过标准介面连接在一起的一内嵌式系统与一主机的另一功能方 块图。内嵌式系统23包含有一微处理器12以及一存储模块24。存储模块24 包含有下载模块26、内嵌式存储器16、以及验证模块28。在图1与图2中, 带有相同功能的元件会以相同的符号表示,其细节将不再重述。
下载模块26与验证模块28 —起执行如同警卫的工作,将一读取路径改 变方向,并提供一验证结果给一主机。如同图2所示,通过一写入路径32(由 标准介面11、下载模块26以及于下载模块26跟内嵌式存储器16之间的总线 一起所构成),主机10可以将原始数据写入内嵌式存储器16中。然而,位于 主机10与内嵌式存储器16之间的下载模块26并不允许主机10去读取刚刚 主机10对于内嵌式存储器16所写的数据。取而代之的是,读出路径34被导 引到验证模块28,所以验证模块28读取内嵌式存储器16中刚刚主机10所写 的数据,并据此产生一验证结果给主机10。主机10就依赖这验证结果来确认 写入的结果,得知写入是否成功且正确。譬如说,如果验证结果是"正"的, 主机10会判定先前的数据写入内嵌式存储器16的动作是成功的,然后才接 着将下一笔数据写入内嵌式存储器16。
为了隐密内嵌式存储器16中的存储器数据,验证结果所带有的信息必须 要少于从内嵌式存储器16所读到的数据。譬如说,验证结果可以是从内嵌式
存储器16所读到的数据去除掉其中几个位或是位组的结果、可以是所读到的 数据的循环冗余校验码、可以是所读到的数据的一种逻辑运算后的结果、或 是其他类似的做法结果。因为主机IO知道刚刚写入的数据应所述的是什么, 如果主机10也知道验证模块28中对于读取数据的处理方式,主机10便可以 产生一个预期的验证结果。这个预期的验证结果可以用来与真正从验证模块 28所获得的验证结果做比较,主机10便可以大略的判定是否前一次的写入是 否成功。
另一种可行的做法是将以上的判定过程放在验证模块28中执行。如同图 2所示,验证模块28可以有一个先入先出存储器(first-in-first-out, FIFO)30, 作为一个缓冲器(buffer),来暂存要写到内嵌式存储器16的原始数据。FIFO 30 同时也可以作为原始数据的快取存储器来增加写入的速度。借由将缓冲器 (FIFO30)中所暂存的原始数据与从内嵌式存储器16所读到的数据做比较,验 证模块28自己便可以精确地判定先前的写入动作是否成功,并通过发出或是 停止一成功信号(当成一验证结果),来告知主机10。主机10无法从内嵌式存 储器16读取数据,仅能从所收到的验证结果来判断先前的写入是否成功。
内嵌式存储器16可以被独立包装的一般标准型存储器(commodity memory)IC所取代。在说明书与权利要求书中,存储器泛指(但不限于)标准型 存储器IC或是内嵌式存储器。
在图1与图2中所举的实施例都在内嵌式存储器与主机之间提供了如同 警卫的工作,来确保内嵌式存储器中所存放的固件不会被主机所完全读取。 本发明的实施例可以相容于传统的IC制造技术,而且也仅仅需要少量的额外 晶片面积。所以本发明的实施例用很少的成本且用传统的制造工艺技术,便 可以有效地隐密内嵌式存储器中所存放的固件。
本发明虽以较佳实施例揭露如上,然而其并非用以限定本发明,任何掌 握此项技术的人,在不脱离本发明的精神和范围内,可做些许的更动与润饰, 因此本发明的保护范围当以权利要求范围所界定的为准。
权利要求
1.一种保障一存储器中的固件安全的方法,其特征在于,所述的保障一存储器中的固件安全的方法包含有检查所述的存储器中的存储器数据;如果所述的存储器中的所述的存储器数据符合一条件,则允许一主机读写整个所述的存储器;以及如果所述的存储器中的所述的存储器数据不符合所述的条件,则防止所述的主机读取至少所述的存储器的一部分。
2. 如权利要求1所述的保障一存储器中的固件安全的方法,其特征在于, 所述的保障一存储器中的固件安全的方法另包含有抹除所述的存储器,以使所述的存储器数据符合所述的条件。
3. 如权利要求1所述的保障一存储器中的固件安全的方法,其中,所述 的存储器为一序列或是平行闪存存储器。
4. 如权利要求1所述的保障一存储器中的固件安全的方法,其中,所述 的主机读写整个所述的存储器的一下载路径包含有一整合驱动电子装置或是 任何一种串列周边介面装置。
5. 如权利要求1所述的保障一存储器中的固件安全的方法,其中,所述 的存储器通过计算所述的存储器数据的循环冗余校验码来检查,而所述的条 件为所述的循环冗余校验码与一预设结果一样。
6. 如权利要求1所述的保障一存储器中的固件安全的方法,其中,所述 的条件为所述的存储器数据全部为0或是全部为1。
7. 如权利要求1所述的保障一存储器中的固件安全的方法,其中,所述 的条件为所述的存储器数据具有一预设的特征。
8. 如权利要求7所述的保障一存储器中的固件安全的方法,其特征在于, 所述的保障一存储器中的固件安全的方法另包含有下列步骤于一测试阶段时,将具有所述的预设的特征的预设数据写入所述的存储器中。
9. 如权利要求1所述的保障一存储器中的固件安全的方法,其中,防止 所述的主机读取至少所述的存储器的一部分的步骤,仅允许所述的主机读取 所述的存储器的一部分,或是完全禁止所述的主机读取所述的存储器。
10. —种存储器模块,其特征在于,所述的存储器模块包含有 一存储器,用以储存存储器数据;一存储器检查模块,连接到所述的存储器,检査所述的存储器数据,当 所述的存储器数据符合一条件时,送出一致能信号,当所述的存储器数据不符合所述的条件时,停止所述的致能信号;以及一下载模块,连接于所述的存储器与一主机之间,当所述的致能信号被 送出时,允许所述的主机读取所述的存储器,当所述的致能信号被停止时, 所述的下载模块防止所述的主机读取所述的存储器。
11. 如权利要求10所述的存储器模块,其中,当所述的存储器模块开始被供电时,或是当所述的主机尝试去更新所述的存储器时,所述的存储器检 查模块被启动。
12. 如权利要求10所述的存储器模块,其中,所述的存储器检查模块通过计算所述的存储器数据的循环冗余校验码来检査所述的存储器数据。
13. 如权利要求10所述的存储器模块,其中,于一测试阶段时,所述的存储器被写入具有一预设的特征的预设数据。
14. 如权利要求10所述的存储器模块,其特征在于,所述的存储器模块另包含有一抹除模块,用以将所述的存储器中的所述的存储器数据抹除,并使所 述的存储器数据符合所述的条件。
15. 如权利要求10所述的存储器模块,其中,存储器检查模块检査所述的存储器数据的一部分。
16. 如权利要求10所述的存储器模块,其中,当所述的致能信号被停止时,所述的下载模块禁止所述的主机读取所述的存储器。
17. —种固件更新方法,所述的固件更新方法包含有 将原始数据从一主机,通过一下载路径,写入一内嵌式存储器; 读取所述的内嵌式存储器中一被写入的部分;以及依据从所述的内嵌式存储器中所读到的数据,产生一验证结果,并提供 给所述的主机;其中,所述的验证结果所带有的信息少于所读到的所述的数据,所述的 主机无法读取所述的内嵌式存储器中所述的被写入的部分,且所述的主机依 赖所述的验证结果来确认写入的结果。
18. 如权利要求17所述的固件更新方法,其特征在于,所述的固件更新 方法另包含有将所述的原始数据暂存在一缓冲器中;以及比较所述的缓冲器中的原始数据与从所述的内嵌式存储器中所读到的数 据,来产生所述的验证结果。
19. 如权利要求18所述的固件更新方法,其中,所述的缓冲器为一先入 先出存储器。
20. —种固件更新系统,所述的固件更新系统包含有 一内嵌式存储器;一下载模块,连接于一主机与所述的内嵌式存储器之间,可提供一下载 路径与所述的主机,来将原始数据写入所述的内嵌式存储器中;以及一验证模块,读取所述的内嵌式存储器中一被写入的部分,并依据从被 写入的部分所读到的数据,产生一验证结果至所述的主机;其中,所述的验证结果所带有的信息少于所述的所读到的数据,所述的 主机无法读取所述的内嵌式存储器中所述的被写入的部分,且所述的主机依 赖所述的验证结果来确认写入的结果。
全文摘要
本发明是关于一种保障一存储器中的固件安全的方法及系统。所述的存储器中的存储器数据被检查;如果所述的存储器中的所述的存储器数据符合一条件,则允许一主机读写整个所述的存储器;如果所述的存储器中的所述的存储器数据不符合所述的条件,则防止所述的主机读取至少所述的存储器的一部分。本发明用很少的成本且用传统的制造工艺技术,便可以有效地隐密内嵌式存储器中所存放的固件。
文档编号G06F12/14GK101192200SQ20071019462
公开日2008年6月4日 申请日期2007年11月27日 优先权日2006年11月27日
发明者叶裕隆, 许绩群, 赵铭阳 申请人:联发科技股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1