【技术实现步骤摘要】
防止回滚攻击的系统及方法
[0001]本专利技术关于半导体装置,特别关于防止对半导体装置的回滚攻击的系统及方法。
技术介绍
[0002]IBM专利文件US20080175381A1描述存储安全版本数据的熔丝(fuse)。该文件提供可利用于系统的方法与装置,以动态地更新用于加密安全数据的安全版本参数。该IBM系统包括一装置,用于加密即将存储于该装置外部的存储器的数据区块;该装置包含第一持久存储部件,用于存储安全版本参数;第二持久存储部件,用于存储主要金钥数据;加密引擎,被设定用于加密即将存储于外部存储器的安全数据区块;其中,以下至少之一:受加密的安全区块,或为此产生的完整性检查值,受安全版本参数的影响;以及用于修改第一持久存储部件,以在不修改先前已修改的第一持久存储部件的情形下,更新安全版本参数的机制。
[0003]以单个一次性可程序化存储器(OTP)设定的分组固件版本描述于:
[0004]https://developer.trustedfirmware.org/w/tf_m/design/secure_storage_service/rollback_protection/
[0005]上述公开文件描述一进阶精简指令集机器(ARM)平台的安全架构,提供防止回滚(roll
‑
back)的准则,以及使回滚可靠的范例。其中,该公开文件陈述“一个合适的实施可能每个软件实例采用一个计数,或将一个列表的版本编号聚集于一个数据库档案,该数据库档案本身的版本采用单一计数”。
[00 ...
【技术保护点】
【技术特征摘要】
1.一种防止回滚攻击的系统,其特征在于,包括:i.芯片,包含:a.开机只读存储器程序码,当所述芯片通电时所述开机只读存储器程序码皆运作;以及b.一次性可编程存储器,用以存储一版本识别码;ii.现用非易失性存储器以及复原非易失性存储器,分别存储可开机固件的版本的第一复本与第二复本;其中,第一识别码存储于所述现用非易失性存储器中,且用以识别所述可开机固件的一设定版本,所述设定版本的所述第一复本存储于所述现用非易失性存储器中,所述第一识别码包含至少一个现用主要编号与一个现用次要编号,两者皆被标记一私有金钥;其中,第二识别码存储于所述复原非易失性存储器中,且用以识别所述可开机固件的所述版本,所述版本的所述第二复本存储于所述复原非易失性存储器中,所述第二识别码包含至少一个复原主要编号与一个复原次要编号,两者皆被标记所述私有金钥;以及iii.硬件装置,根据由开机只读存储器程序码于开机后提供的一第一指令,所述硬件装置将至少所述复原非易失性存储器上锁直到下次系统重置,其中将所述复原非易失性存储器上锁包含确保除了来自所述开机只读存储器程序码的操作之外所述复原非易失性存储器为不可写入,以及根据所述下次系统重置时由所述开机只读存储器程序码提供的第二指令,所述硬件装置解除所述复原非易失性存储器的上锁,从而当较新版本的可开机固件已生效后,防止较旧版本的可开机固件被启动;其中,与所述较新版本以及所述较旧版本相关联的多个固件映像,以及所述第一识别码及所述第二识别码均被标记所述私有金钥;以及其中,所述开机只读存储器程序码用以认证所述多个固件映像,及认证所述第一识别码及所述第二识别码。2.根据权利要求1所述的系统,其特征在于,所述一次性可编程存储器包含多个熔丝,所述熔丝的状态表示该版本识别码。3.根据权利要求1所述的系统,其特征在于,所述一次性可编程存储器中的多个位被用于表示一OTP编号;OTP编号=起始编号+计数;所述多个位包含一个n位的阵列,从而定义n个位序号,分别与所述n个位关联,所述n个位包含一个由值为“0”的位所构成的第一子集合,以及一个由值被熔为“1”的n个位所构成的第二子集合,其中所述计数被决定为多个位序号中的最高序号,所述多个位序号与被熔为“1”的n个位所构成的所述第二子集合关联。4.根据权利要求3所述的系统,其特征在于,当所述固件映像存储于所述现用非易失性存储器与所述复原非易失性存储器时,所述OTP编号与存储于所述现用非易失性存储器与所述复原非易失性存储器中的主要编号相等。5.根据权利要求3所述的系统,其特征在于,所述起始编号受到写入保护。6.根据权利要求3所述的系统,其特征在于,所述OTP编号被用以作为所述现用主要编号与所述复原主要编号的一个比较参考值。7.根据权利要求1所述的系统,其特征在于,所述硬件装置不关闭所述现用非易失性存
储器的读取及/或写入,使所述现用非易失性存储器于开机后为可读写。8.根据权利要求1所述的系统,其特征在于,所述现用非易失性存储器与所述复原非易失性存储器包含两个分离的存储器装置。9.根据权利要求1所述的系统,其特征在于,所述现用非易失性存储器与所述复原非易失性存储器包含位于单一快闪存储器装置中的两个存储器范围。10.一种防止回滚攻击的方法,其特征在于,包括:I.提供一系统,包括:i.芯片,包含:a.开机只读存储器程序码,当芯片通电时所述开机只读存储器程序码皆运作;以及b.一次性可程序化存储器,用以存储一版本识别码;ii.现用非易失性存储器以及复原非易失性存储器,分别存储可开机固件的版本的第一复本与第二复本;其中,第一识别码存储于所述现用非易失性存储器中用以识别所述可开机固件的所述版本,所述版本的所述第一复本存储于所述现用非易失性存储器中,所述第一识别码包含至少一个现用主要编号与一个现用次要编号,两者皆被标记一私有金钥;其中,第二识别码存储于所述复原非易失性存储器中且用以识别所述版本,所述版本的所述第二复本存储于所述复原非易失性存储器中,所述第二识别码包含至少一个复原主要编号与一个复原次要编号,两者皆被标记所述私有金钥;以及iii.硬件装置,根据由开机只读存储器程序码于开机后提供的一第一指令,所述硬件装置将至少所述复原非易失性存储器上锁直到下次系统重置,其中将所述复原非易失性存储器上锁包含确保除了来自所述开机只读存储器程序码的操作之外所述复原非易失性存储器为不可写入,以及根据所述下次所述系统重置时由所述开机只读存储器程序码提供的第二指令,所述硬件装置解除所述复原非易失性存储器的上锁,从而当较新版本的可开机固件已生效后,防止较旧版本的可开机固件被启动;II.存储第一版本的可开机固件的复本,于所述现用非易失性存储器与所述复原非易失性存储器中;存储至少所述第一版本的一主要编号的第一复本与第二复本,分别于所述复原非易失性存储器与所述现用非易失性存储器中;以及程序化所述一次性可编程存储器中的至少一位,使所述至少一位代表的数值匹配所述主要编号;III.进行至少一次所述可开机固件的次要更新,包含将存储于所述现用非易失性存储器的可开机固件版本以所述可开机固件的一个新的次要版本取代,以及将存储于所述现用非易失性存储器的第一识别码以一个包含较高次要编号的新识别码取代;以及IV.于至少一次必然导致一次开机的重置之后,a.执行开机只读存储器程序码:如果所述现用非易失性存储器的内容为有效,则决定所述现用非易失性存储器中的识...
【专利技术属性】
技术研发人员:蒙旭,
申请(专利权)人:新唐科技股份有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。