CN101427259A - 对软件版本的安装的授权 - Google Patents
对软件版本的安装的授权 Download PDFInfo
- Publication number
- CN101427259A CN101427259A CN200780014710.8A CN200780014710A CN101427259A CN 101427259 A CN101427259 A CN 101427259A CN 200780014710 A CN200780014710 A CN 200780014710A CN 101427259 A CN101427259 A CN 101427259A
- Authority
- CN
- China
- Prior art keywords
- value
- integrity protection
- counter value
- treatment facility
- version
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000013475 authorization Methods 0.000 title description 3
- 238000009434 installation Methods 0.000 title description 3
- 238000000034 method Methods 0.000 claims abstract description 69
- 238000003860 storage Methods 0.000 claims abstract description 50
- 238000012545 processing Methods 0.000 claims abstract description 29
- 230000006870 function Effects 0.000 claims description 15
- 238000012217 deletion Methods 0.000 claims description 12
- 230000037430 deletion Effects 0.000 claims description 12
- 238000012423 maintenance Methods 0.000 claims description 10
- 238000004590 computer program Methods 0.000 claims description 4
- 230000008569 process Effects 0.000 description 21
- 230000007246 mechanism Effects 0.000 description 18
- 238000010200 validation analysis Methods 0.000 description 13
- 238000010586 diagram Methods 0.000 description 6
- 238000004519 manufacturing process Methods 0.000 description 5
- 230000008901 benefit Effects 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 238000004891 communication Methods 0.000 description 3
- 238000012795 verification Methods 0.000 description 3
- 230000008676 import Effects 0.000 description 2
- 230000000630 rising effect Effects 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000005465 channeling Effects 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 230000002427 irreversible effect Effects 0.000 description 1
- 230000001172 regenerating effect Effects 0.000 description 1
- 230000003252 repetitive effect Effects 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 238000005096 rolling process Methods 0.000 description 1
- 238000012163 sequencing technique Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
- G06F21/12—Protecting executable software
- G06F21/121—Restricting unauthorised execution of programs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
- G06F21/572—Secure firmware programming, e.g. of basic input output system [BIOS]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6209—Protecting access to data via a platform, e.g. using keys or access control rules to a single file or object, e.g. in a secure envelope, encrypted and accessed using a key, or with access control rules appended to the object itself
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/64—Protecting data integrity, e.g. using checksums, certificates or signatures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/2105—Dual mode as a secondary aspect
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Technology Law (AREA)
- Multimedia (AREA)
- Storage Device Security (AREA)
- Stored Programmes (AREA)
Abstract
一种维护指示存储在处理设备中的存储内容的版本的版本计数器的方法。所述方法包括以第一或第二模式选择性地操作设备。对第一模式的访问限于授权的用户并且与对第二模式的访问分开控制。在第一模式中,生成至少一个初始完整性保护值,其用于加密地保护在以第二模式操作所述处理设备期间所述版本计数器的初始计数器值,其中所述初始计数器值是从计数器值序列中选择的;以及将所述初始完整性保护值作为当前完整性保护值存储在存储介质中。在第二模式中,当前计数器值被递增到后续计数器值;其中递增包括从所述存储介质中删除当前完整性保护值。
Description
技术领域
公开了一种用于维护计数器的方法、产品装置以及设备。
背景技术
像移动电话和其他数据处理设备这样的嵌入式系统依赖于正确软件的执行。而且,甚至用于相当小的系统的软件也变得日益复杂,从而增加了出错和非故意的特征的风险,特别是在软件生命周期期间的早期版本中。而且,早期软件版本的功能一般是受限的。因此,日益需要对存储在嵌入式设备中的软件从较旧版本到已更新版本的频繁更新。为了明了哪个版本被安装在设备中,所述设备一般维护一个版本计数器,该版本计数器的值对应于当前已安装的版本号。
尽管用于保护静态和动态数据以防未授权操作的方法是已知的,例如如在国际专利申请WO 02/27441中所公开的那样,但是这种方法没有提供对软件版本的回滚的保护,例如它们并未阻止一个已经授权的用户利用重新安装较旧的软件版本来安装软件更新。
然而,通常希望的是实施软件更新策略,其防止一个已经获得了具有初始软件版本的移动电话的用户执行超出初始版本的范围的回滚,即防止重新安装比初始版本旧的较旧软件版本。例如,这样一种未授权的回滚可能不是所希望的,因为较旧的软件版本可能包括允许不诚实的用户利用所述设备执行诸如中断SIM锁定等等之类的未授权的或不希望的操作的错误。
因此,通常希望的是提供一种用于维护版本计数器的方法,其防止一个用户执行超出初始软件版本的范围的软件回滚,所述初始软件版本一般是用户获得处理设备时所具有的版本。
国际专利申请WO 01/33317公开了一种访问控制系统,该系统用于验证在设备中存储的数据是受保护数据(例如被用来控制对其他受保护材料的访问的数据)最近的已授权版本。这个现有技术的访问控制系统包括计数器和安全存储单元,所述安全存储单元被配置成包含将所述计数器的内容绑定到正在被保护的数据的参数。
然而,尽管上述现有技术的系统提供了单向的版本计数器,但是上述现有技术系统的问题是它需要安全存储单元。例如,在嵌入式系统的情况下,这种安全存储单元一般被实施为安全的片上可重写的、非易失性存储器,其结合实施所述控制系统的ASIC逻辑来实施。然而,这种安全的可重写的、非易失性存储器的实现需要ASIC生产期间的附加步骤,从而增加了整个生产成本。
发明内容
通过一种由处理设备维护版本计数器的方法来解决上述及其他问题,所述版本计数器指示存储在所述处理设备中的存储内容的版本,所述方法包括以第一和第二模式中的一种来选择性地操作所述处理设备,其中对以第一模式操作所述处理设备的访问限于授权的用户并且与对第二模式的访问分开控制。
以第一模式操作处理设备的步骤包括:
-生成至少一个初始完整性保护值,其用于加密地保护在以第二模式操作处理设备期间所述版本计数器的初始计数器值的完整性;其中初始计数器值是从计数器值序列中选择的;以及
-将所述初始完整性保护值作为当前完整性保护值存储在存储介质中;
以第二模式操作处理设备的步骤包括:将当前计数器值递增到后续的计数器值,该后续的计数器值在计数器值序列中是在当前计数器值之后;其中递增包括:从所述存储介质中删除用于加密地保护当前计数器值的完整性的当前完整性保护值。
因此,提供一种不依赖于安全存储器的软件防回滚机制。
特别是,因为从存储介质中删除了撤销的计数器值的完整性保护值,并且因为仅仅允许以分开保护的操作模式来计算完整性保护值,所以防止没有特定授权的常规用户重新生成撤销的计数器值。
如上所述,在此处所述的处理设备的实施例中,所述处理设备能够以第一和第二模式中的一种来选择性地操作,其中对以第一模式操作处理设备的访问限于授权的用户并且与对第二模式的访问分开控制。因此,一个被授权以第二模式操作设备的用户未必也被授权以第一模式操作设备。选择性的操作例如可以通过提供所述设备可以被引导的两种模式、或者通过最初准许以第二模式访问来实施,以及以成功的访问控制为条件来提供对以第一模式提供的附加功能的访问。
可以以多种不同的方式来执行完整性保护值的删除,例如通过用更新的值来重写撤销的完整性保护值,通过用预定的数据项(例如零)来重写保护值,或者以任何其他防止用户随后从所述存储介质中检索删除的数据的合适的方式。
此处所述的方法和设备的优点是防止了版本计数器的意外回滚。而且,使得故意地回滚到与先前已经在当前用户的控制下安装的版本号相对应的较旧的计数器值变得困难,因为它需要对存储的集成保护值的操作,例如通过检索所有集成保护值,并且在已经删除了它们之后结合版本计数器的递增来重新输入它们。无论如何,防止了用户将版本计数器回滚到超出它的初始值范围,即超出在用户获得设备时计数器的值的范围。
一旦设备同时被更新到后续的版本,以上更新策略从表面上看可能似乎没有严格地防止每个版本回滚(包括回到设备被获得时的初始版本的回滚)的策略那么严格。然而,应该注意到,这种更新策略的严格实施将需要一种每当较新版本的更新可用时就迫使用户更新软件的机制。在没有这种机制的情况下,用户可以刚好省略更新所述设备,并且从而仍然能够操作具有初始软件版本的设备而不必执行版本回滚。
出于本说明的目的,术语“版本计数器”打算指任何为存储内容(例如软件版本、存储数据的版本等等)的版本序列中的每一个提供基本上唯一值的设备或机构。版本计数器可以被实施为数据项(例如数字或其他值)的顺序地有序集。应该理解,版本计数器也可以被实施为生成随机数的非重复序列的随机数发生器,或者被实施为另一个唯一值发生器。在一些实施例中,版本计数器是用于对在设备中安装的软件的软件版本进行计数的版本计数器。
在一些实施例中,以第一模式操作处理设备包括:
-生成完整性保护值序列,其用于加密地保护计数器值序列中各自计数器值的完整性;其中所述计数器值序列从所述初始计数器值开始顺序地排序;以及
-将完整性保护值序列存储在存储介质中。
因此,根据本实施例,在开始以第一模式操作设备期间创建并存储了一组完整性保护值。每当在随后以第二模式操作设备期间将版本计数器从当前值递增到后续值时,就从存储介质中删除与在后续值之前的计数器值对应的一个或多个完整性保护值,特别是与当前计数器值对应的完整性保护值,从而防止随后对当前计数器值的密码验证。
在一些实施例中,可以提供递增计数器的两种模式:不可逆递增,其中先前的完整性保护值被删除;以及可逆递增,其中完整性保护值不被删除。在又一个实施例中,可以在从实际递增计数器开始经过了预定时间之后执行对完整性保护值的删除。可选地或者另外,可以在实际递增计数器后的预定数目的重新引导之后执行对完整性保护值的删除。对计数器更新的这种延迟的参与可能是有用的,以便允许用户在参与它之前测试更新的软件版本的正确操作。
在一个实施例中,所述方法进一步包括提供完整性保护值计算单元,所述完整性保护值计算单元适于只有当以所述第一和第二模式中的第一种操作所述设备时才输出所述完整性保护值序列中的生成的完整性保护值。因此,仅仅被授权以第一模式操作所述设备的用户可以(重新)计算所述完整性保护值。例如,设备制造商可以选择把对第一模式的访问限制于所述制造商。因此,制造商可以在生产所述电子设备期间以第一模式操作所述设备以便生成合适数目的完整性保护值并将其存储在设备上。所有随后获得所述设备的用户可以仅仅以第二模式访问所述设备,从而防止重新生成用于过时计数器值的完整性保护值。
在一些实施例中,递增当前计数器值到后续计数器值包括:生成对应于后续计数器值的后续完整性保护值;以及用所述后续完整性保护值替换所述当前完整性保护值。因此,在这个实施例中,不需要在设备中从开始就存储大量的完整性保护值,因此节省了存储容量并且避免由存储的完整性保护值的数目来限制可保护的计数器值的范围。而且,当以第二模式操作时,所述设备仅仅生成对应于后续计数器值的完整性保护值,从而仍然防止未被授权以第一模式操作所述设备的用户重新生成先前计数器值的完整性保护值,所述先前计数器值是就顺序排序的计数器值而言比当前计数器值低的等级的计数器值。
当生成后续完整性保护值包括根据当前完整性保护值来验证当前计数器值并且根据对所述当前计数器值的成功验证来生成所述后续完整性保护值时,进一步提高了所述方法的安全性,因为所述设备只有在当前值被成功地验证时才生成后续完整性保护值。
当每个生成的完整性保护值对于对应的计数器值和所述设备是唯一的时,防止用户只从计数器还没有被递增的另一个设备中拷贝先前的完整性保护值。
术语“完整性保护值”打算包括通过用于保证存储在存储器中的信息不被意外地或恶意地改变或破坏的机制所生成的任何数据项。完整性保护机制的例子包括消息认证码、单向散列函数、以及数字签名。当完整性机制是加密的完整性保护机制即基于秘密密钥时,提高了完整性保护的安全性。当完整性保护值是消息认证码时,实现了特别安全和高效的完整性保护。
消息认证码(MAC)是用于完整性保护数据的已知机制。MAC是采用可变长度输入和密钥以产生定长的完整性保护值作为输出(所谓的MAC值或标记值)的函数。MAC通常在共享一个秘密密钥的双方之间使用,以便验证在双方之间传送的信息。MAC可以通过将单向散列函数应用于所述数据以及使用秘密密钥加密所述结果来计算。可以与密码散列函数结合的合适的MAC函数的例子包括使用例如AES或安全单向散列函数的HMAC(用于消息认证的密钥散列法)、密码块链接(CBC)MAC。在此处所述的方法和设备的实施例中,消息认证码被用来检验存储在处理设备的存储介质中的计数器值的完整性,从而避免对把所述计数器值存储在安全存储单元中的需要。
因此,在一些实施例中,完整性保护包括存储计算的与将被保护的计数器值相关的参考完整性保护值,例如消息认证码值,从而使它对于随后由处理设备对计数器值的检查是可用的。因此,当检查所述计数器值时,设备使用存储在设备中的秘密密钥计算计数器值的完整性保护值,并且比较所述结果与先前存储的参考完整性保护值,例如参考MAC值。因此,在这个实施例中,秘密密钥只需要为数字处理设备所知。在一些实施例中,秘密密钥是只有处理设备才有的秘密的数据项,例如只为处理设备所知的秘密的数据项。
当每一个计数器值是设备唯一的时,提供针对从一个设备拷贝完整性保护值到另一个设备的附加保护。
在一些实施例中,由完整性保护模块来实施借助于对应的完整性保护值对计数器值的生成和验证,该完整性保护模块被保护以防受到修改,从而提高了过程的安全性。所述完整性保护模块例如可以由受保护的硬件模块和/或由可信程序代码来实施。这里的术语“可信程序代码”打算包括任何完整性保护的程序代码,例如在处理设备的固件中包括的程序代码、在其执行之前被加密地完整性检验的代码、在处理设备的引导ROM代码中包括的程序代码等等,例如基于存储在一次性可编程(OTP)存储器中的完整性保护值。
在一些实施例中,所述方法进一步包括:
-接收所述存储内容的更新版本,所述更新版本包括版本指示符;
-验证接收的存储内容的可靠性(authenticity);
-基于版本指示符和版本计数器的当前值来对接收的更新的存储内容执行版本控制;
-以版本控制的结果为条件接受所述接收的更新的存储内容。
因此,提供一种对存储内容的高效且安全的更新。所述处理设备可以经由任何合适的数据接口、经由有线或无线通信接口等等来接收存储内容,所述数据接口例如在诸如CD、记忆棒或其他存储设备之类的计算机可读介质上。
对可靠性的验证可以包括任何在现有技术中已知的合适技术,例如借助于数字签名和/或证书、借助于消息认证码等等。
版本控制可以包括任何在现有技术中已知的合适的版本控制机制,例如用于在IBM AIX Unix操作系统中的软件模块的软件编号和LINUX内核的编号,例如通过比较版本指示符和版本计数器的当前值。在一些实施例中,当版本指示符大于或等于版本计数器的最低可靠计数器值(即对于其在设备中存储有效完整性保护值的最低计数器值)时,接受更新的存储内容。当版本控制失败时,例如因为接收的版本更旧或与当前版本或最低可靠版本不兼容,更新过程可能被中止,可能生成错误消息,和/或设备可以以任何其他合适的方式进行。
当被接受时,设备一般存储更新的存储内容以便替换对应的存储内容。在一些实施例中,所述更新进一步包括:递增版本计数器到对应于如此处所述的接收的更新的存储内容的版本指示符的值。例如,所述递增可以包括设置版本计数器等于接收的版本指示符。在另一个实施例中,所述递增可以包括设置版本计数器等于在版本计数器序列中具有等于接收的版本指示符的位置的计数器值。
本发明涉及包括上文和下文中所述的方法、对应设备、以及计算机程序的不同方面,每一个方面产生结合上述方法所述的一个或多个益处和优点,并且每一个方面具有对应于结合上述方法所述的实施例的一个或多个实施例。
更具体地说,根据另一方面,配置成维护指示存储在数据处理设备中的存储内容的版本的版本计数器的数据处理设备能够选择性地以第一和第二模式中的一种来操作,其中对以第一模式操作处理设备的访问限于授权的用户并且与对第二模式的访问分开控制。
处理设备在以第一模式操作时被配置成执行下列步骤:
-生成所述版本计数器的至少一个初始计数器值,其中所述初始计数器值是从计数器值序列中选择的;
-生成初始完整性保护值,其用于加密地保护在以第二模式操作处理设备期间生成的初始计数器值的完整性;以及
-将初始完整性保护值作为当前完整性保护值存储在存储介质中。
处理设备在以第二模式操作时被进一步配置成递增当前计数器值到后续计数器值,后续计数器值在计数器值序列中是在当前计数器值之后;其中递增包括:从所述存储介质中删除用于加密地保护当前计数器值的完整性的当前完整性保护值。
术语“处理设备”打算包括任何包含用于数据处理的处理装置的电子设备。特别是,术语“处理设备”打算包括任何电子设备、便携式无线电通信设备、以及其他手持式或便携式设备、以及供这种设备中使用的集成电路、芯片或芯片组。术语“便携式无线电通信设备”包括诸如移动终端(例如移动电话)、寻呼机、通信器、电子记事本、智能电话、个人数字助理(PDA)、手持式计算机等等之类的所有设备。
术语“存储介质”打算包括任何适合于存储数字数据项的电路或设备。这种存储介质的例子包括非易失性存储器、只读存储器(ROM)、随机存取存储器(RAM)、闪速存储器、可擦除可编程只读存储器(EPROM)等等。在一些实施例中,存储介质被包括在处理设备中。
根据另一方面,一种更新存储在处理设备中的存储内容的方法包括:
由所述处理设备维护版本计数器,所述版本计数器指示所述存储内容的版本,其中维护版本计数器包括选择性地以第一和第二模式中的一种来操作处理设备,其中对以第一模式操作处理设备的访问限于授权的用户并且与对第二模式的访问分开控制。
其中以第一模式操作处理设备包括:
-生成至少一个初始完整性保护值,其用于加密地保护在以第二模式操作处理设备期间所述版本计数器的初始计数器值的完整性;其中该初始计数器值是从计数器值序列中选择的;以及
-将初始完整性保护值作为当前完整性保护值存储在存储介质中;
其中所述方法进一步包括:
-以第二模式操作处理设备;
-接收所述存储内容的更新的版本,所述更新的版本包括版本指示符;
-验证接收的存储内容的可靠性;
-基于版本指示符和版本计数器的当前值来对接收的更新的存储内容执行版本控制;
-以版本控制的结果为条件接受所述接收的更新的存储内容;以及
-递增当前计数器值到后续计数器值,所述后续计数器值对应于所述版本指示符并且在计数器值序列中的当前计数器值之后;其中递增包括从所述存储介质中删除用于加密地保护当前计数器值的完整性的当前完整性保护值。
注意,上面和下文中所述的方法的特征可以以软件来实施,并且在数据处理设备或通过诸如计算机可执行指令之类的程序代码装置的执行而形成的其他处理装置上被执行。在这里和下文中,术语“处理装置”包括适当地适于执行以上功能的任何电路和/或设备。特别是,上述术语包括通用的或专用的可编程微处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、可编程逻辑阵列(PLA)、现场可编程门阵列(FPGA)、专用电子电路等等、或者它们的组合。
因此,根据另一方面,一种计算机程序包括程序代码装置,其适于当所述计算机程序在数据处理设备上运行时使数据处理设备执行上面和下文中描述的方法的各步骤。
例如,程序代码装置可以经由计算机网络从存储介质或从另一个计算机被加载到诸如RAM(随机存取存储器)之类的存储器中。可选择地,所述的特征可以通过硬连线电路代替软件或与软件相结合来实施。
附图说明
根据在下文中参考附图所述的实施例,上述及其他方面将是显而易见的并且被阐明,在附图中:
图1示出处理设备的一个实施例的示意方框图。
图2示出用于实施计数器的处理单元的例子和用于维护版本计数器值和完整性保护值的数据结构的例子的示意方框图。
图3示出用于实施计数器的处理单元的另一个例子的示意方框图。
图4示出计数器机制的一个实施例的流程图。
图5示出用于维护版本计数器值和完整性保护值的数据结构的例子。
具体实施方式
图1示出作为处理设备的一个例子的、包括一个或多个专用集成电路(ASIC)的设备的示意方框图,所述处理设备例如是供移动终端或任何其他电子设备中使用的一个或多个ASIC。总体上用100表示的ASIC设备包括中央处理逻辑块102、用于将数据输入到ASIC设备/从ASIC设备输出数据的接口块186、以及用于存储数据和/或程序代码的数据存储块103。数据存储块103经由系统总线105与中央处理逻辑块102连接。数据存储块103包括:用于存储程序指令的程序存储器块106,用于容纳寄存器、随机存取存储器(RAM)等等的数据存储器块107,以及可重写的非易失性存储器块108,例如电可擦除可编程只读存储器(EEPROM)。程序存储器块可以被实施为只读存储器(ROM)、以及可擦除可编程只读存储器(EPROM)、闪速存储器、EEPROM等等。然而应当理解,数据存储块可以包括附加的和/或替换的存储器块或存储类型。
中央处理逻辑块102包括微处理器188或其他适合于例如通过执行存储在数据存储块103中的程序代码来控制移动终端或其他电子设备的操作的逻辑电路。特别是,中央处理逻辑块102被配置成维护存储在非易失性存储器块108的单元109中的版本计数器值,该非易失性存储器块108用于维护存储在数据存储块103中的程序代码的版本号。而且,中央处理逻辑块被配置成启动版本计数器值109的完整性检查,例如每隔一定间隔、在引导过程期间、在安装/升级期间、和/或在执行与版本计数器相关联的程序代码之前等等。而且,中央处理逻辑块102被配置成在对应软件的新版本被加载到数据存储块103中时启动对存储的版本计数器值109的递增。
为此,中央处理块102包括完整性保护逻辑块101,所述完整性保护逻辑块101包括逻辑电路,该逻辑电路被配置成验证如在下面更加详细地描述的计数器值109的完整性,以便保护计数器值以免被未授权的用户操作,例如修改、用另一个值(特别是较小值)替换等等。为此,非易失性存储器块108进一步包括存储单元110,所述存储单元110用于存储一个或多个完整性保护值以供由完整性保护逻辑块101实施的验证过程使用。完整性保护值由完整性保护逻辑块101生成,并且由完整性保护逻辑块101在验证存储在存储单元109的(多个)计数器值期间用作参考完整性保护值。完整性保护逻辑块101能够以两种模式操作:第一模式或所谓的“编程模式”,以及第二模式或所谓的“验证模式”。操作模式由中央处理逻辑块102借助于合适的控制信号来控制。当以“编程模式”操作时,完整性保护逻辑块101生成至少一个初始参考保护值。生成的完整性保护值被存储在存储单元110中以作为用于稍后验证目的的参考值。当以“验证模式”操作时,由完整性保护逻辑块101执行对存储在单元109中的(多个)计数器值的验证。
如将在下面更加详细地描述的那样,完整性保护逻辑块101包括访问控制块111,所述访问控制块111被配置成当用户请求以“编程模式”操作完整性保护逻辑块101时执行独立的认证过程。可选择地,访问控制111可以由在完整性保护逻辑块101之外的访问控制块来执行。应当理解,照此例如以“验证模式”对处理设备的操作也可能例如借助于初始访问控制来进行用户认证过程。因此,除初始访问控制或者初始访问控制的替代方式之外,还可以执行用于以“编程模式”操作完整性保护逻辑块101的访问控制111。在第一种情况下,用户可能被要求一开始获得授权来访问设备,例如以“验证模式”操作设备。为了切换操作到“编程模式”,需要一种不同于初始访问控制的附加访问控制。在第二种情况下,设备可以是例如能够以两种替换的操作模式进行引导,一种包括以“验证模式”操作设备,以及另一种包括以“编程模式”操作设备。因此,取决于用户希望以哪一种模式操作设备,用户执行对应的一种访问控制过程。
完整性保护逻辑块101被实施为受保护的硬件块,即被实施为进行保护以防未授权访问的硬件块。特别是,在一些实施例中,完整性保护逻辑块101被配置成使得只有在以“编程模式”操作ASIC时,即在已经引导ASIC的用户被授权以“编程模式”操作ASIC时,才可以从完整性保护逻辑块101中读出至少一个初始完整性保护值。
对用户授权的验证可以以任何合适的方式执行,例如通过要求用户输入与先前存储的值进行比较的访问码,通过要求用户输入有效密钥卡或其他硬件安全设备,通过执行基于用户的身体属性(例如指纹)的认证机制、或者任何其他用于确定用户是已经被授权的用户的合适的机制。用于提供授权的证据的合适方法的例子是所谓的Fiat-Shamir识别算法,例如如在US 4,748,668中所描述的那样。应当理解,用于输入“编程模式”的访问控制可以基于与用于以“验证模式”操作设备的访问控制相同的或不同的认证机制。例如,对两种模式的访问可以通过基于访问码的相同的认证机制来控制,但是其中对于这两种模式需要不同的访问码。
硬件保护可以通过任何合适的保护技术来实施,例如如在W Rakl,W Effing的“Smart Card Handbook”(3rd ed.,Wiley 2003)的第8.2章“Smart card Security”中所述的用来保护智能卡中的硬件的所述技术。
值得注意的是,(多个)计数器值109和(多个)完整性保护值110被存储在受保护的完整性保护逻辑块101之外。特别是,(多个)计数器值109和(多个)完整性保护值110可以被存储在未受保护的非易失性存储器中,特别是在可重写的存储器(例如设备100的存储器块108)中。
尽管ASIC设备100被显示为单个块,但是将会认识到,设备100可以被实施为多个不同的ASIC。例如,为了降低生产成本,可能希望在不同的ASIC上实施EEPROM和微处理器以及完整性保护逻辑块。因此,术语“ASIC”以及“ASIC设备”打算包括单个ASIC以及各独立的ASIC的组合。
现在将参考图2和图3更详细地描述完整性保护逻辑块101的实施例。
图2示出完整性保护逻辑块的例子的更详细的方框图。完整性保护逻辑块201包括MAC计算块212,其被配置成计算一个或多个用于保护相应的计数器值的加密的消息认证码(MAC)值。
通常,MAC计算可以由下列等式来表示:M=H(k,d),其中H是合适的MAC函数,d是将被保护的数据,M是计算的MAC值,以及k是秘密密钥值。在一些实施例中,秘密密钥k在ASIC 100上是可访问的,但是不能从ASIC 100中读出。合适的MAC函数的例子是如在Network Working Group Request forComments(RFC)2104,“HMAC:Keyed-Hashing for Message Authentication”,February 1997中定义的HMAC函数。因此,在当前认证用209表示的计数器值cnt的情况下,完整性保护逻辑块201从存储块109中接收计数器值209,并且把计数器值209馈送到MAC计算块212中。MAC计算块212进一步接收例如在ASIC 100或完整性保护块201的安全存储器(例如内部ROM)中存储的以防不希望的读出的、用216表示的秘密密钥k,即这样的完整性保护块201已经读取对所述秘密密钥k的访问。MAC计算块212计算MAC值M=H(k,cnt),并且将计算的值287转发到模式选择器218,例如开关。
如上所述,完整性保护块201可以以如由控制输入215控制的两种模式操作:“编程模式”和“验证模式”。如上所述,以“编程模式”的操作易受到由访问控制211实施的对应的访问控制。因此,访问控制块211接收模式选择控制信号215。如果模式选择信号215对应于“编程模式”,则访问控制块211验证用户的可靠性以便确保以“编程模式”的完整性保护块的操作限于如上所述的授权的用户。如果用户被授权,则访问控制块211将模式选择信号215作为控制信号转发到选择器218以便控制计算的MAC值的数据流。如果模式选择信号215对应于“验证模式”,则访问控制块211把选择信号转发到选择器218。应当理解,在一些实施例中“验证模式”也可能受到访问控制。
当以“编程模式”操作时,选择器218将计算的MAC值287经由连接220转发到输出214,从该输出214,MAC值作为参考MAC值被存储在存储单元110中。在这个实施例中,完整性保护块201在以“编程模式”操作时被控制以便计算用于预定数目N个版本计数器值VersionCount1,VersionCount2,....,VersionCountN的多个MAC值mac_VC1_ref=H(k,VersionCount1),mac_VC2_ref=H(k,VersionCount2),...,mac_VCN_ref=H(k,VersionCountN)并将其存储在存储单元110中。为了本描述的目的,假定版本计数器值以递增次序排序,即VersionCount1<VersionCount2<...<VersionCountN。然而应当理解,计数器值可以根据任何合适的排序方案来顺序地排序。预先计算和存储MAC值的数目N可以被选择作为需要的存储空间和应该由受保护的版本计数器管理的版本更新的预期数目之间的折衷。例如,版本MAC值214可以与相应的版本计数值相关地存储在例如如图2b所示出的表格数据结构中。可选择地,版本MAC值可以独立于版本计数器值被存储。例如,在设备包括用于例如通过递增计数器生成计数器值序列的逻辑的实施例中,计数器值不需要被明确地存储。
当以“验证模式”操作时,选择器218将计算的MAC值馈送到验证器块217(例如比较器)。验证器块217比较计算的MAC值287与存储在存储单元110处的一个或多个参考MAC值210。在参考MAC值210与它们各自的计数器值209被相关地存储的实施例中,验证器块可以比较计算的MAC值287和与由其计算MAC值287的计数器值相关地存储的参考值210。可选择地,验证器块217可以连续地比较计算的MAC值287和存储的参考值210,直到发现匹配为止或者直到所有的参考值都已经被处理为止。验证器块217生成指示对应于计算的MAC 287的匹配参考MAC 210是否被发现的输出信号219,即所述输出信号219指示计数器值209是否是可靠的和最新的。由完整性保护块201在输出节点213处输出所述输出信号213。
在处理设备的每次启动时或每当由在处理设备上运行的应用程序请求时,例如通过核心软件的平台,完整性保护块被控制以验证存储在如上所述的存储单元109中的当前计数器值。在一些实施例中,每当版本控制过程访问版本计数器时,就对版本计数器的完整性进行验证。如果计算的MAC值287对应于存储在存储器110中的参考MAC值210,处理设备就继续正常工作;否则处理设备的一些或所有功能被禁止和/或采取另一个适当的动作。
此处所述的版本计数器可以以多种不同的方式被用于软件版本控制。在下文中将描述两个例子,其中版本计数器的当前值(即具有与其相关联的有效完整性保护值的最低计数器值)识别允许的最低软件版本,该版本被允许在处理设备上执行。
在一个例子中,版本控制由安装的软件本身来执行。在这种系统中,软件具有数字签名以便确保软件没有被未授权的用户改变。用于验证接收的/存储的软件的可靠性的合适方法的例子包括在美国专利no.6,026,293中或在可信计算组(www.trustedcomputinggroup.org.)的PC客户端工作组的规范中描述的方法。可选地或者另外,软件的可靠性可以由另一个合适的机制来保护。当处理设备被引导时和/或当软件的执行被启动时,处理设备验证软件的数字签名。如果数字签名没有被成功地验证,则中止引导过程和/或软件的执行。软件进一步包括指示软件的版本号的版本指示符。当软件的执行被启动时,软件比较它自己的版本指示符和由通过如此处所述的处理设备维护的版本计数器的当前计数器值指示的当前允许的(多个)版本号。如果软件的版本指示符等于或大于版本计数器的当前计数器值,软件就继续执行;否则就中止执行。如果软件的版本指示符大于版本计数器的当前计数器值,处理设备就递增版本计数器到等于所安装软件的版本指示符的更新值。如此处所述,这个递增包括删除与所有小于更新值的计数器值相关联的(多个)完整性保护值,例如(多个)MAC值。
在可替换的例子中,上述的版本控制通过独立的加载器软件或启动软件执行。不过,在这个可替换的实施例中,数字签名或其他将被执行的软件的完整性保护仍然防止执行软件的未授权的操作(例如改变版本指示符)。
当处理设备100被控制来从当前值更新/递增/递升版本计数器到后续值时,处理设备100从存储器110中删除所有与小于所述后续计数器值的计数器值相关联的参考MAC值。例如,计数器值的更新可以由在中央处理逻辑块102的微处理器188上执行的软件更新代理141执行。在一些实施例中,版本计数器的递升在ASIC的安全部分中被实施。可选择地,递升可以由可信的/验证的软件来执行。
在上述版本计数器值VersionCount1,VersionCount2,...,VersionCountN的例子中,当版本计数器从VersionCount1递增到VersionCount2时,处理设备从存储器中删除MAC值mac_VC1_ref。类似地,如果版本计数器递增到VersionCountK,处理设备就从存储器中删除MAC值mac_VC1_ref,...,mac_VCk-1_ref。图2c说明在图2b中所示的计数器值和MAC值的表,但是在更新计数器值到VersionCountK之后,即从存储器中删除了MAC值mac_VC1_ref,...,mac_VCk-1_ref。因此,通常当前计数器值是其完整性可成功验证的最小计数器值,即对于其在设备中存储有效关联的完整性保护值的最小计数器值。因此,随后由完整性保护块试图验证较低计数器值将失败,因为对应的参考MAC值不再存在。而且,没有被授权以“编程模式”操作ASIC的用户不能重新计算对应于先前(较低的)计数器值的MAC值。
上述例子进一步说明后续计数器值可以是序列中任何后续计数器值,并且不必是紧接的计数器值,即当递增计数器值时可以跳过中间计数器值。在上述例子中,计数器值例如可以从VersionCount1递增到VersionCount2或递增到VersionCountk,k>2。例如当软件版本被更新到一个新的版本以至于一个或多个中间版本被跳过时,这可能是有用的。
图3示出完整性保护逻辑块301的另一个例子的更详细的方框图。完整性保护逻辑块301类似于图2的完整性保护块,并且包括:MAC计算块212,其被配置成计算用于保护相应的计数器值的一个或多个加密的消息认证码(MAC)值;控制选择器218的访问控制块211;以及验证器块217。MAC计算块212、访问控制块211、选择器218、以及验证器块217已经结合图2进行了描述,并且这里将不再次进行描述。
完整性保护块301不同于图2的完整性保护块201,因为完整性保护块301包括另一MAC计算块312。MAC计算块312执行与MAC计算块212相同的计算,并且它接收相同的秘密密钥k。然而,MAC计算块312接收递增的计数器值333而不是馈送到MAC计算块212的计数器值209。为此,完整性保护块301包括递增块332,其接收计数器值209,并且生成递增的计数器值333,即在计数器值序列中接下来的计数器值。可选择地,MAC计算块212和312可以被合并成单个块,可选地连同递增块332一起。在又一个可替换的实施例中,完整性保护块301只包括单个MAC计算块,其被控制来顺序地生成用于计数器值209和递增的计数器值333的MAC值。由MAC计算块312生成的递增的计数器值333的MAC值331被馈送到开关330。如果验证器块217已经针对参考MAC值110成功地验证了当前计数器值109的MAC值,则开关330由验证器块217的输出219进行控制以使开关330将MAC值331馈送到输出213。如果验证器块217没有成功地验证当前计数器值(或者如果验证器块217没有从MAC计算块212接收到输入,因为完整性保护块301以“编程模式”操作),则在输出213处不提供MAC值331。
因此,在图3的例子中,当完整性保护块301以“验证模式”操作时,并且如果版本计数器值VersionCountk针对它的参考MAC被成功地验证,完整性保护块301被配置以便输出VersionCountk+1的MAC值。在这个实施例中,完整性保护块301以“编程模式”操作,以便生成并存储一个仅仅用于第一有效计数器值的初始参考MAC。通常这在生产设备期间进行,例如作为生产步骤的一部分,其中设备由制造商加载软件。在这种情况下,制造商被授权以“编程模式”操作设备。以“编程模式”激活设备所需的任何密钥、口令等等都可以这样由制造商保密。
现在将参考图4更详细地描述当以“验证模式”操作时由图3的完整性保护块301所执行的过程。
图4示出计数器机制的一个实施例的流程图。在初始步骤S401中,过程接收当前计数器值cnt和对应的MAC参考值mac_cnt_ref。在随后的步骤S402中,过程根据接收的计数器值cnt和秘密密钥k计算MAC值mac_cnt=h(k,cnt)。在步骤S403,过程比较计算的MAC值mac_cnt和接收的参考MAC值mac_cnt_ref。如果它们相等,则过程进行到步骤S405;否则过程进行到步骤S404。在步骤S404,过程输出错误状态“否”,其指示当前计数器的验证没有成功,并且过程终止。选择性地,过程可以进一步输出该过程接收到的不正确的参考值mac_cnt_ref。在步骤S405,即如果计算的和参考MAC值相同,则过程计算递增的计数器cnt+1的MAC值h(k,cnt+1),并且在步骤S406输出计算的值以作为参考MAC mac_(cnt+1)_ref=h(k,cnt+1)连同当前计数器值被成功验证的指示“是”。
这个实施例的优点是它将要被存储的MAC参考值的列表减少到当前和随后的参考值,因此节省了设备中的存储空间。当递增版本计数器时,处理设备利用在前一验证步骤期间计算的后续参考值mac_(cnt+1)_ref替换所存储的当前参考值mac_cnt_ref。在随后的验证步骤期间这样生成下一参考MAC值mac_(cnt+2)_ref。在一些实施例中,仅仅保存了当前参考值。例如,软件更新可以包括对当前计数器的验证,其又产生随后的如上所述将被计算和输出的参考值。在存储器中当前参考值可以这样用后续值来替换。
图5结合与图3和图4一起描述的实施例示出用于维护版本计数器值和完整性保护值的数据结构的例子。图5a示出表格结构,其中将当前计数器值(在这个例子中是VersionCountk)和下一更高的计数器值(在这个例子中是VersionCountk+1)与它们各自的参考MAC值mac_VCk_ref和mac_VCk+1_ref相关地进行存储。图5b示出在版本更新到版本VersionCountk+1之后的表格结构。因此,在该表格结构中,过时的计数器值和参考MAC已经分别由新的当前值VersionCountk+2和mac_VCk+2_ref重写。而且,新的后续值VersionCountk+2和mac_VCk+2_ref已经被写入到数据结构中。因此,再一次,当前计数器值是其完整性可成功验证的最小计数器值,即对于其在设备中存储有效关联的完整性保护值的最小计数器值。随后由完整性保护块试图验证较低计数器值将失败,因为对应的参考MAC值不再存在。而且,未被授权以“编程模式”操作ASIC的用户不能重新计算对应于先前(较低)计数器值的MAC值,因为ASIC在以“验证模式”操作时仅仅输出后续MAC值而不是当前或先前的MAC值。
尽管已经详细地描述和示出了一些实施例,但是本发明并不局限于它们,而是还可以在后面权利要求书限定的主题的范围内以其他方式来具体实现。
特别是,已经主要参考作为数据处理设备的例子的移动终端描述了上述实施例。然而应当理解,此处所述的方法、产品装置、以及设备也可以被应用于其他数据处理设备。
而且,已经主要结合单个软件版本计数器描述了上述实施例。然而应当理解,此处所述的方法、设备和产品装置也可以被应用于其他类型的用于计数其他更新事件、状态等等的、涉及存储内容的版本而不是软件版本的版本计数器。这种存储内容的例子包括但不限于存储的数据,例如存储在数据库中的数据等等。类似地,处理设备可以借助于此处所述机制维护多于一个的计数器,例如用于不同的软件实体或模块、数据项等等的不同计数器。
此处所述的方法、产品装置、以及设备可以借助于包括几个不同元件的硬件以及借助于适当编程的微处理器来实施。在列举几个装置的设备权利要求中,可以通过同一项硬件(例如适当编程的微处理器、一个或多个数字信号处理器等等)来具体实现这些装置中的几个。仅仅在相互不同的从属权利要求中记载或在不同的实施例中描述某些措施的事实,并不表明不能有利地使用这些措施的组合。
应该强调,术语“包括/包含”在用于本说明书时被采用来规定所述的特征、整体、步骤或组件的存在,但是并不排除一个或多个其他的特征、整体、步骤、组件、或它们的组的存在或添加。
Claims (34)
1、一种由处理设备维护版本计数器的方法,所述版本计数器指示存储在所述处理设备中的存储内容的版本,所述方法包括选择性地以第一和第二模式中的一种来操作所述处理设备,其中对以第一模式操作所述处理设备的访问限于授权的用户并且与对第二模式的访问分开控制;
其中以第一模式操作所述处理设备包括:
-生成至少一个初始完整性保护值,其用于加密地保护在以第二模式操作所述处理设备期间所述版本计数器的初始计数器值的完整性;其中所述初始计数器值是从计数器值序列中选择的;以及
-将所述初始完整性保护值作为当前完整性保护值存储在存储介质中;
其中以第二模式操作所述处理设备包括递增当前计数器值到后续计数器值,所述后续计数器值在所述计数器值序列中是在所述当前计数器值之后;其中递增包括从所述存储介质中删除用于加密地保护所述当前计数器值的完整性的当前完整性保护值。
2、根据权利要求1所述的方法,其中以第一模式操作所述处理设备包括:
-生成用于加密地保护计数器值序列中的各自计数器值的完整性的完整性保护值序列;其中所述计数器值序列从所述初始计数器值开始顺序地排序;以及
-将所述完整性保护值序列存储在存储介质中。
3、根据权利要求2所述的方法,进一步包括:提供完整性保护值计算单元,所述完整性保护值计算单元适于只有当以所述第一和第二模式中的第一种来操作所述设备时才输出生成的所述完整性保护值序列中的完整性保护值。
4、根据权利要求1所述的方法,其中递增当前计数器值到后续计数器值包括:生成对应于所述后续计数器值的后续完整性保护值;以及用所述后续完整性保护值替换所述当前完整性保护值。
5、根据权利要求4所述的方法,其中生成所述后续完整性保护值包括:基于所述当前完整性保护值来验证所述当前计数器值;以及以所述当前计数器值的成功验证为条件生成所述后续完整性保护值。
6、根据权利要求1至5中的任何一项所述的方法,其中每个生成的完整性保护值对于对应的计数器值和所述设备是唯一的。
7、根据权利要求1至6中的任何一项所述的方法,其中每个生成的完整性保护值是由消息认证码函数根据所述版本计数器的值和秘密密钥值所生成的消息认证码值。
8、根据权利要求7所述的方法,其中所述秘密密钥值是特定于设备的。
9、根据权利要求1至8中的任何一项所述的方法,其中每一个所述计数器值是设备唯一的。
10、根据权利要求1至9中的任何一项所述的方法,其中借助于对应的完整性保护值生成和验证计数器值是由完整性保护模块实施的,所述完整性保护模块被保护以防受到修改。
11、根据权利要求10所述的方法,其中所述完整性保护模块是硬件模块。
12、根据权利要求1至11中的任何一项所述的方法,其中所述处理设备是可编程微处理器。
13、根据权利要求1至12中的任何一项所述的方法,其中所述处理设备是移动终端。
14、根据权利要求1至13中的任何一项所述的方法,其中所述存储介质被包括在所述处理设备中。
15、根据权利要求1至14中的任何一项所述的方法,其中所述计数器是软件版本计数器。
16、根据权利要求1至15中的任何一项所述的方法,进一步包括:
-接收所述存储器内容的更新版本,所述更新版本包括版本指示符;
-验证接收的存储内容的可靠性;
-基于所述版本指示符和所述版本计数器的当前值对接收的已更新存储内容执行版本控制;
-以所述版本控制的结果为条件接受所述接收的已更新存储内容。
17、根据权利要求16所述的方法,进一步包括:递增所述版本计数器到对应于接收的已更新存储内容的版本指示符的后续计数器值。
18、根据权利要求1至17中的任何一项所述的方法,其中接受包括:用所接受的接收的已更新存储内容来更新存储在所述处理设备中的存储内容。
19、一种计算机程序产品,包括程序代码装置,所述程序代码装置适于当所述程序代码装置在数据处理设备上被执行时执行根据权利要求1至18中的任何一项所述的方法。
20、一种被配置成维护版本计数器的处理设备,所述版本计数器指示存储在所述处理设备中的存储内容的版本,所述处理设备能够选择性地以第一和第二模式中的一种来操作,其中对以第一模式操作所述处理设备的访问限于授权的用户并且与对第二模式的访问分开控制;
其中当以第一模式操作时,所述处理设备被配置成执行下列步骤:
-生成所述版本计数器的至少一个初始计数器值,其中所述初始计数器值是从计数器值序列中选择的;
-生成初始完整性保护值,其用于加密地保护在以第二模式操作所述处理设备期间生成的初始计数器值的完整性;以及
-将所述初始完整性保护值作为当前完整性保护值存储在存储介质中;
其中所述处理设备被进一步配置成当以第二模式操作时递增当前计数器值到后续计数器值,所述后续计数器值在所述计数器值序列中是在所述当前计数器值之后;其中递增包括:从所述存储介质中删除用于加密地保护所述当前计数器值的完整性的所述当前完整性保护值。
21、根据权利要求20所述的处理设备,其被配置成当以第一模式操作时执行下列步骤:
-生成计数器值序列;其中所述计数器值序列从所述初始计数器值开始被顺序地排序;
-生成用于加密地保护生成的计数器值序列中的各自计数器值的完整性的对应的完整性保护值序列;以及
-将所述完整性保护值序列存储在存储介质中。
22、根据权利要求21所述的处理设备,包括完整性保护值计算单元,所述完整性保护值计算单元适于只有当所述设备以所述第一和第二模式中的第一种操作时才输出生成的所述完整性保护值序列中的完整性保护值。
23、根据权利要求20所述的处理设备,进一步适于通过生成对应于后续计数器值的后续完整性保护值以及通过用所述后续完整性保护值替换所述当前完整性保护值来递增所述当前计数器值到后续计数器值。
24、根据权利要求23所述的处理设备,进一步适于:借助于所述当前完整性保护值验证所述当前计数器值;以及以对所述当前计数器值的成功验证为条件生成所述后续完整性保护值。
25、根据权利要求20至24中的任何一项所述的处理设备,适于生成每个完整性保护值以便对于对应的计数器值和所述设备是唯一的。
26、根据权利要求20至25中的任何一项所述的处理设备,适于生成每个完整性保护值以作为由消息认证码函数根据所述版本计数器的值和秘密密钥值所生成的消息认证码值。
27、根据权利要求26所述的处理设备,其中所述秘密密钥值是特定于设备的。
28、根据权利要求20至27中的任何一项所述的处理设备,其中每一个所述计数器值是设备唯一的。
29、根据权利要求20至28中的任何一项所述的处理设备,包括完整性保护模块,所述完整性保护模块适于借助对应的完整性保护值来实施对计数器值的生成和验证;以及其中所述完整性保护模块被保护以免受到修改。
30、根据权利要求29所述的处理设备,其中所述完整性保护模块是硬件模块。
31、根据权利要求20至30中的任何一项所述的处理设备,其中所述处理设备是可编程微处理器。
32、根据权利要求20至31中的任何一项所述的处理设备,其中所述处理设备是移动终端。
33、根据权利要求20至32中的任何一项所述的处理设备,其中所述处理设备包括所述存储介质。
34、根据权利要求20至33中的任何一项所述的处理设备,其中所述计数器是软件版本计数器。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP06388031A EP1850256B1 (en) | 2006-04-24 | 2006-04-24 | Authorisation of the installation of a software version |
EP06388031.4 | 2006-04-24 | ||
US74767606P | 2006-05-19 | 2006-05-19 | |
US60/747,676 | 2006-05-19 | ||
PCT/EP2007/003389 WO2007121903A1 (en) | 2006-04-24 | 2007-04-18 | Authorisation of the installation of a software version |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101427259A true CN101427259A (zh) | 2009-05-06 |
CN101427259B CN101427259B (zh) | 2011-11-23 |
Family
ID=37398783
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200780014710.8A Expired - Fee Related CN101427259B (zh) | 2006-04-24 | 2007-04-18 | 维护版本计数器的方法和设备 |
Country Status (10)
Country | Link |
---|---|
US (1) | US8880898B2 (zh) |
EP (1) | EP1850256B1 (zh) |
JP (1) | JP5038397B2 (zh) |
KR (1) | KR20090005390A (zh) |
CN (1) | CN101427259B (zh) |
AT (1) | ATE470909T1 (zh) |
CA (1) | CA2646003A1 (zh) |
DE (1) | DE602006014801D1 (zh) |
TW (1) | TW200817964A (zh) |
WO (1) | WO2007121903A1 (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107111730A (zh) * | 2014-11-07 | 2017-08-29 | 新思公司 | 用于数据存储的完整性保护 |
WO2020118639A1 (zh) * | 2018-12-13 | 2020-06-18 | 深圳市大疆软件科技有限公司 | 无人飞行器及其固件升级方法 |
CN113486399A (zh) * | 2021-07-14 | 2021-10-08 | 上海瓶钵信息科技有限公司 | 基于risc-v架构的数据存储方法及系统 |
CN117668872A (zh) * | 2023-12-04 | 2024-03-08 | 北京海泰方圆科技股份有限公司 | 一种数据保护方法及装置 |
Families Citing this family (34)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2008018055A2 (en) * | 2006-08-09 | 2008-02-14 | Neocleus Ltd | Extranet security |
WO2008114257A2 (en) * | 2007-03-21 | 2008-09-25 | Neocleus Ltd. | Protection against impersonation attacks |
WO2008114256A2 (en) * | 2007-03-22 | 2008-09-25 | Neocleus Ltd. | Trusted local single sign-on |
US8474037B2 (en) * | 2008-01-07 | 2013-06-25 | Intel Corporation | Stateless attestation system |
US20090307705A1 (en) * | 2008-06-05 | 2009-12-10 | Neocleus Israel Ltd | Secure multi-purpose computing client |
US8266684B2 (en) | 2008-09-30 | 2012-09-11 | General Instrument Corporation | Tokenized resource access |
US8364598B2 (en) * | 2009-10-13 | 2013-01-29 | Microsoft Corporation | Use of software update policies |
US8621337B1 (en) * | 2010-09-30 | 2013-12-31 | Juniper Networks, Inc. | Detecting memory corruption |
US20120204254A1 (en) * | 2011-02-04 | 2012-08-09 | Motorola Mobility, Inc. | Method and apparatus for managing security state transitions |
JP5759845B2 (ja) * | 2011-09-21 | 2015-08-05 | 株式会社メガチップス | 情報処理システム、情報処理装置、外部記憶媒体、プログラム、記憶媒体、及び、ファイル管理方法 |
GB2499985A (en) * | 2012-02-29 | 2013-09-11 | Nds Ltd | Current state of OTP memory used with new received information to define new OTP state for computation of new digital signature in preventing playback attacks |
US9910659B2 (en) * | 2012-11-07 | 2018-03-06 | Qualcomm Incorporated | Methods for providing anti-rollback protection of a firmware version in a device which has no internal non-volatile memory |
EP3998743A1 (en) | 2013-03-15 | 2022-05-18 | Assa Abloy Ab | Method, system, and device for generating, storing, using, and validating nfc tags and data |
EP3082251B1 (en) * | 2013-12-12 | 2023-06-28 | Panasonic Intellectual Property Management Co., Ltd. | Motor-driving apparatus |
US9460312B2 (en) * | 2014-03-11 | 2016-10-04 | Qualcomm Incorporated | Data integrity protection from rollback attacks for use with systems employing message authentication code tags |
US9621549B2 (en) | 2014-07-25 | 2017-04-11 | Qualcomm Incorporated | Integrated circuit for determining whether data stored in external nonvolative memory is valid |
US9928385B2 (en) * | 2014-08-29 | 2018-03-27 | The Boeing Company | Periodic memory refresh in a secure computing system |
US9325506B2 (en) | 2014-09-23 | 2016-04-26 | Red Hat, Inc. | Cryptographically enforcing strict separation of environments |
US10042780B2 (en) * | 2014-11-07 | 2018-08-07 | Synopsys, Inc. | Integrity protection for data storage |
JP6595822B2 (ja) * | 2015-07-07 | 2019-10-23 | キヤノン株式会社 | 情報処理装置及びその制御方法 |
US10019309B2 (en) * | 2015-12-28 | 2018-07-10 | International Business Machines Corporation | Analytics-based dynamic adaptation of client-server mobile applications |
US10126960B2 (en) | 2016-05-10 | 2018-11-13 | Qualcomm Incorporated | Fuse-based anti-replay mechanism |
US10754988B2 (en) * | 2016-08-30 | 2020-08-25 | Winbond Electronics Corporation | Anti-rollback version upgrade in secured memory chip |
CN109313427B (zh) * | 2018-02-02 | 2021-12-03 | 深圳配天智能技术研究院有限公司 | 一种可编程逻辑芯片的保护电路及控制系统 |
EP3614622A1 (en) * | 2018-08-24 | 2020-02-26 | Nagravision SA | Sending and receiving messages |
WO2020112143A1 (en) | 2018-11-30 | 2020-06-04 | Hewlett-Packard Development Company, L.P. | Polling computing devices |
EP3887987A4 (en) | 2018-11-30 | 2022-06-15 | Hewlett-Packard Development Company, L.P. | SOFTWARE FIX DIFFERENCE DEVICES |
US11128460B2 (en) * | 2018-12-04 | 2021-09-21 | EMC IP Holding Company LLC | Client-side encryption supporting deduplication across single or multiple tenants in a storage system |
US11288361B1 (en) * | 2019-03-29 | 2022-03-29 | NortonLifeLock Inc. | Systems and methods for restoring applications |
US10474809B1 (en) * | 2019-07-12 | 2019-11-12 | Capital One Services, Llc | Computer-based systems and computing devices configured to utilize one or more authentication servers for securing device commands transmissions and methods of use thereof |
JP7362583B2 (ja) | 2020-09-23 | 2023-10-17 | 株式会社東芝 | 情報処理装置 |
KR20220093664A (ko) | 2020-12-28 | 2022-07-05 | 삼성전자주식회사 | 크립토 장치, 그것을 갖는 집적 회로 및 컴퓨팅 장치, 및 그것의 쓰기 방법 |
US20220382868A1 (en) * | 2021-06-01 | 2022-12-01 | Mellanox Technologies Ltd. | Unidirectional counter |
CN113255263B (zh) * | 2021-06-07 | 2021-10-01 | 上海国微思尔芯技术股份有限公司 | 颗粒带分割方法、装置、计算机设备和存储介质 |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5643086A (en) * | 1995-06-29 | 1997-07-01 | Silicon Gaming, Inc. | Electronic casino gaming apparatus with improved play capacity, authentication and security |
GB2353120B (en) * | 1996-06-28 | 2001-03-21 | Intel Corp | Method and apparatus for protecting flash memory |
EP1141808A1 (en) * | 1999-10-29 | 2001-10-10 | Koninklijke Philips Electronics N.V. | Assuring data integrity via a secure counter |
JP4193321B2 (ja) * | 2000-03-29 | 2008-12-10 | オムロン株式会社 | 画像処理システム及びコンピュータ並びに画像処理装置及び処理方法 |
US9213836B2 (en) * | 2000-05-28 | 2015-12-15 | Barhon Mayer, Batya | System and method for comprehensive general electric protection for computers against malicious programs that may steal information and/or cause damages |
US20030037237A1 (en) * | 2001-04-09 | 2003-02-20 | Jean-Paul Abgrall | Systems and methods for computer device authentication |
US7159240B2 (en) * | 2001-11-16 | 2007-01-02 | Microsoft Corporation | Operating system upgrades in a trusted operating system environment |
JP2003202931A (ja) * | 2002-01-09 | 2003-07-18 | Toshiba Corp | ソフトウェアダウンロードシステム、サーバ装置、端末装置、サーバ制御プログラム、端末制御プログラム、サーバ制御方法、端末制御方法 |
US7421579B2 (en) * | 2002-06-28 | 2008-09-02 | Microsoft Corporation | Multiplexing a secure counter to implement second level secure counters |
EP1429224A1 (en) * | 2002-12-10 | 2004-06-16 | Texas Instruments Incorporated | Firmware run-time authentication |
WO2004046934A2 (en) * | 2002-11-18 | 2004-06-03 | Arm Limited | Secure memory for protecting against malicious programs |
US20050021968A1 (en) * | 2003-06-25 | 2005-01-27 | Zimmer Vincent J. | Method for performing a trusted firmware/bios update |
US7100205B2 (en) * | 2003-10-22 | 2006-08-29 | The United States Of America As Represented By The Secretary Of The Navy | Secure attention instruction central processing unit and system architecture |
US7940932B2 (en) * | 2004-04-08 | 2011-05-10 | Texas Instruments Incorporated | Methods, apparatus, and systems for securing SIM (subscriber identity module) personalization and other data on a first processor and secure communication of the SIM data to a second processor |
US7877313B2 (en) * | 2004-04-16 | 2011-01-25 | Sap Ag | Method and system for a failure recovery framework for interfacing with network-based auctions |
-
2006
- 2006-04-24 AT AT06388031T patent/ATE470909T1/de not_active IP Right Cessation
- 2006-04-24 DE DE602006014801T patent/DE602006014801D1/de active Active
- 2006-04-24 EP EP06388031A patent/EP1850256B1/en not_active Not-in-force
-
2007
- 2007-04-18 CN CN200780014710.8A patent/CN101427259B/zh not_active Expired - Fee Related
- 2007-04-18 CA CA002646003A patent/CA2646003A1/en not_active Abandoned
- 2007-04-18 WO PCT/EP2007/003389 patent/WO2007121903A1/en active Application Filing
- 2007-04-18 KR KR1020087028597A patent/KR20090005390A/ko not_active Application Discontinuation
- 2007-04-18 US US12/298,220 patent/US8880898B2/en active Active
- 2007-04-18 JP JP2009506952A patent/JP5038397B2/ja not_active Expired - Fee Related
- 2007-04-23 TW TW096114272A patent/TW200817964A/zh unknown
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107111730A (zh) * | 2014-11-07 | 2017-08-29 | 新思公司 | 用于数据存储的完整性保护 |
CN107111730B (zh) * | 2014-11-07 | 2021-01-08 | 新思公司 | 用于数据存储的完整性保护 |
WO2020118639A1 (zh) * | 2018-12-13 | 2020-06-18 | 深圳市大疆软件科技有限公司 | 无人飞行器及其固件升级方法 |
CN113486399A (zh) * | 2021-07-14 | 2021-10-08 | 上海瓶钵信息科技有限公司 | 基于risc-v架构的数据存储方法及系统 |
CN113486399B (zh) * | 2021-07-14 | 2023-03-24 | 上海瓶钵信息科技有限公司 | 基于risc-v架构的数据存储方法及系统 |
CN117668872A (zh) * | 2023-12-04 | 2024-03-08 | 北京海泰方圆科技股份有限公司 | 一种数据保护方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
US8880898B2 (en) | 2014-11-04 |
JP2009534765A (ja) | 2009-09-24 |
DE602006014801D1 (de) | 2010-07-22 |
EP1850256B1 (en) | 2010-06-09 |
CA2646003A1 (en) | 2007-11-01 |
JP5038397B2 (ja) | 2012-10-03 |
KR20090005390A (ko) | 2009-01-13 |
EP1850256A1 (en) | 2007-10-31 |
CN101427259B (zh) | 2011-11-23 |
US20090100272A1 (en) | 2009-04-16 |
WO2007121903A1 (en) | 2007-11-01 |
ATE470909T1 (de) | 2010-06-15 |
TW200817964A (en) | 2008-04-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101427259B (zh) | 维护版本计数器的方法和设备 | |
EP1325401B1 (en) | System for protecting static and dynamic data against unauthorised manipulation | |
US9594909B2 (en) | Software updating apparatus, software updating system, invalidation method, and invalidation program | |
EP0849657B1 (en) | Secure data processing method and system | |
US7681050B2 (en) | Secure and replay protected memory storage | |
CN100533332C (zh) | 提高数据安全性的方法和系统 | |
JP5457362B2 (ja) | 情報処理装置、情報処理方法、情報処理プログラム及び集積回路 | |
CN101308538B (zh) | 检查固件完整性的方法和设备 | |
CN103329095A (zh) | 用编码的信息验证管理程序 | |
KR20000005081A (ko) | 명령을 스마트 카드에 안전하게 로딩하기 위한 방법 | |
US8745735B2 (en) | Monitoring system, program-executing device, monitoring program, recording medium and integrated circuit | |
US20100205459A1 (en) | Method and system for protecting against access to a machine code of a device | |
CN101939754A (zh) | 使用混合匹配的手指感测设备及相关方法 | |
CN111160879A (zh) | 一种硬件钱包及其安全性提升方法和装置 | |
CN103348355A (zh) | 用于管理安全状态转换的方法和设备 | |
JP2564593B2 (ja) | プログラムを機密保護し且つ機密保護されたプログラムを保全制御する方法 | |
CN108270574A (zh) | 一种白名单库文件的安全加载方法及装置 | |
EP1811460B1 (en) | Secure software system and method for a printer | |
EP0962850A2 (en) | A method for protecting embedded system software and embedded system | |
US11941159B2 (en) | Configuration data deletion based on tamper status | |
CN100555301C (zh) | 一种撤销软件许可的方法 | |
US20240086170A1 (en) | Software update system and software update method | |
JP2012039390A (ja) | フレキシブル認証ルールの修正 | |
Noller | Security Target | |
JP2006031416A (ja) | 認証機能を備えた情報処理装置およびその発行方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20111123 |