CN1210637C - 保护静态和动态数据免遭未授权操作的系统 - Google Patents
保护静态和动态数据免遭未授权操作的系统 Download PDFInfo
- Publication number
- CN1210637C CN1210637C CNB018162185A CN01816218A CN1210637C CN 1210637 C CN1210637 C CN 1210637C CN B018162185 A CNB018162185 A CN B018162185A CN 01816218 A CN01816218 A CN 01816218A CN 1210637 C CN1210637 C CN 1210637C
- Authority
- CN
- China
- Prior art keywords
- dynamic
- hash value
- memory
- data object
- parameters
- 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.)
- Expired - Lifetime
Links
- 238000000034 method Methods 0.000 title claims abstract description 63
- 230000015654 memory Effects 0.000 claims abstract description 135
- 238000013475 authorization Methods 0.000 claims abstract description 70
- 238000012986 modification Methods 0.000 claims abstract description 44
- 230000004048 modification Effects 0.000 claims abstract description 44
- 238000012550 audit Methods 0.000 claims description 126
- 230000003068 static effect Effects 0.000 claims description 63
- 230000006870 function Effects 0.000 claims description 22
- 238000012552 review Methods 0.000 claims description 11
- 238000012545 processing Methods 0.000 description 20
- 230000007246 mechanism Effects 0.000 description 19
- 238000010586 diagram Methods 0.000 description 10
- 230000001413 cellular effect Effects 0.000 description 7
- 230000008859 change Effects 0.000 description 4
- 238000012360 testing method Methods 0.000 description 4
- 230000008901 benefit Effects 0.000 description 3
- 238000013478 data encryption standard Methods 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 2
- 238000007689 inspection Methods 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 238000010420 art technique Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 239000007787 solid Substances 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/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
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/14—Protection against unauthorised use of memory or access to memory
- G06F12/1408—Protection against unauthorised use of memory or access to memory by using cryptography
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W12/00—Security arrangements; Authentication; Protecting privacy or anonymity
- H04W12/10—Integrity
- H04W12/106—Packet or message integrity
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/12—Applying verification of the received information
- H04L63/123—Applying verification of the received information received data contents, e.g. message integrity
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W88/00—Devices specially adapted for wireless communication networks, e.g. terminals, base stations or access point devices
- H04W88/02—Terminal devices
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Health & Medical Sciences (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Bioethics (AREA)
- Health & Medical Sciences (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Storage Device Security (AREA)
- Signal Processing For Digital Recording And Reproducing (AREA)
- Circuits Of Receivers In General (AREA)
- Bidet-Like Cleaning Device And Other Flush Toilet Accessories (AREA)
- Measurement And Recording Of Electrical Phenomena And Electrical Characteristics Of The Living Body (AREA)
Abstract
通过把动态数据对象和动态授权数据存储在存储器中来确保包括一个或多个动态数据项的动态数据对象的完整性。例如,动态授权数据可以是为获得授权进行了多少次失败尝试的记数,并且在任何时候进行了另一次失败尝试至少要修改所述记数。无论何时都可以修改动态数据对象和动态授权数据,其对应的散列值就要重新计算并存回到存储器中。只有新产生的两个散列特征值与预先存储在存储器中的值匹配时,动态数据对象才被看作为可信的。对动态数据对象的修改只能在用户已经执行并通过授权程序后才能进行。
Description
技术领域
本发明涉及防止电子存储器操作的系统,更具体地说,涉及防止对电子设备中需要保密的存储器内容的未授权操作的方法和装置。
背景技术
本文中公开的本发明涉及所有需要维护存储器内容的安全或不允许改变其状态的电子设备。这种需求可能是出于安全考虑提出的,例如,防止蜂窝式电话存储器的欺诈性操作,或者在一些重要应用中,例如航空控制或医药设备的操作,维护电子设备运行的整体性目的。正如本文中公开的和说明的,本发明的示范性方面是从用于加密蜂窝式电话中的一个或多个电子存储器的系统和方法方面着手的。本文中还说明一种系统,所述系统允许在访问电子存储器之前,利用经过鉴别的数据传送设备访问和操作电子设备中的一个或多个电子存储器。后一种系统也在蜂窝式电话的应用中说明。即使本文说明的本发明的示范性实施例,在保密蜂窝式电话存储器以及用于安全访问和修改蜂窝式电话存储器内容的装置方面作了说明,本专业的技术人员容易理解,本发明的系统也可以用于具有一个或多个存储器的任何电子系统,这些存储器内容要保持不变,或者其存储器只有通过授权装置才能被访问和修改。所以,本发明的范围不局限于本文中给出的示范性实施例,而是由后附的权利要求书和等价内容规定。
在许多固定的和移动的计算和通信系统中,例如个人数字助理(PDA)和蜂窝式电话,需要保护某些存储在系统存储器中的数据。这些数据可能是与文档、数据库或程序对应的数据。在蜂窝式电话的内容中,这些数据可能表示有关信息,例如,国际移动式设备身份码(IMEI)编号(由ETSI GSM规范确定),无线电校正数据以及加密访问代码。一旦存入存储器中,这类数据就不想改变,因此,本文中将它称作为静态数据。其它类型数据也可以存储在存储器中,例如,表示GSM电话是否被锁定在规定的操作员网络的状态标记的数据。这类数据(本文中将它称作为动态数据)具有被用户修改的可能,但是只有用户被授权才可能修改。在所有其它情况下,动态数据是不允许修改的。
已经对确保静态数据完整性的技术(即,防止静态数据被窜改)作了说明,例如在美国专利No.5442645和No.6026693中给出的说明,所述专利通过引用被全部包括在本文中。这些方法广泛应用密码技术,用于从静态数据产生所谓“特征”。密码技术已众所周知,并在象《应用密码学手册》(A.Menezes,P.C.an Orrshot和S.A.Vanstone,CRC出版社,1996)一类的出版物中作了说明,所述内容通过引用被全部包括在本文中。当已知所述静态数据为可信的时,则产生特征同时保存。然后,在允许用户使用静态数据之前,再次计算特征,并与前一次保存的版本进行比较。如果发现任何不匹配,则证明静态数据发生了变化就不使用所述静态数据。
在美国专利5442645中,需要保存秘密密钥以便实现整体性保护。在美国专利6026293中说明了一种更完善的技术。现在,参照图1的方框图简要说明。在所述系统中,包括处理电路100的ASIC与快速程序存储器101、随机访问存储器(RAM)103和电可擦可编程只读存储器(EEPROM)105通过系统总线107相互连接在一起。处理电路100包括微处理器109、定时器和控制器逻辑电路111以及两种形式的存储器:保护静态RAM(PSRAM)113和内部只读存储器(IROM)115。除了传统的引导代码117外,IROM 115存储公开密钥119、散列算法的程序代码(用散列码121表示)和设备验证代码123的程序代码。静态数据125存储在EEPROM 105中。静态数据125由存储在EEPROM 105中的审查散列值127保护。审查散列值127由存储在处理电路的IROM115中的散列码121实现的散列算法计算得到。外部数据传送设备对EEPROM的内容的访问是利用存储在IROM 115中的公开密钥119和验证代码123、通过使用验证程序来控制的。验证程序要求数据传送设备占有对应的公用/专用加密方案的秘密密钥,所述秘密密钥用于实现验证程序。由定时器和控制逻辑电路111实现的定时机制用于触发处理电路的性能,以便在一组计数器确定的某一瞬间实现整体性检查。
现有方法的缺点在于,由于任何修改整体性检查软件的方法可以用来饶过加密机制,因此,实现整体性检查的软件本身必须加密。在美国专利6026293说明的技术中,通过固定处理电路ASIC的IROM中的软件代码可以满足这种要求。然而,为了能够应用所述技术,系统开发者必须能够定义一部分ASIC。这种能力会增加所述部件的成本。
这些现有技术的另一个缺点在于,不适合用来确保动态数据的完整性。
在美国专利5606315中描述了一种机制,对动态数据对象的访问是通过存储在EEPROM中的口令控制的。然而,用户很容易从EEPROM中读取口令并获得对动态数据的修改权力。而且,在该文件描述的系统中,不对动态数据进行完整性检查。
发明内容
应该强调,当在本说明书中使用术语“包括”和“包含”时,意指存在确定的特征、整体、步骤或部件;但是使用这些术语并不排除存在或附加一个或多个特征、整体、步骤、部件或它们的组合。
根据本发明的一个方面,在确保包括一个或多个数据项的动态数据对象完整性的方法和装置中实现前述的和其它目的。完成这一点包括将动态数据对象和动态授权数据存储在存储器中。分别产生动态数据对象和动态授权数据的不同散列特征,并将其存储在存储器中。当用户希望修改动态数据对象时,必须确定所述用户是否被授权修改动态数据对象。如果所述用户被授权,那么,动态授权数据被修改(例如,失败尝试计数器加1),并产生新的动态授权数据的散列特征。然后,存回到存储器中。
如果所述用户被授权修改动态数据对象,那么,就允许进行修改。然后重新计算对应的散列特征并将其存回到存储器中。只有新产生的两个散列特征值与预先存入存储器中的值相匹配时,才认为所述动态数据对象是可信的。
根据本发明的一种确保动态数据对象完整性的方法,所述动态数据对象包括一个或多个数据项,所述方法包括:
将所述动态数据对象存入存储器中;
将动态授权数据存入所述存储器中;
应用第一动态散列算法、从包括所述动态数据对象的一个或多个参数产生初始的第一动态审查散列值;
应用第二动态散列算法、从包括所述动态授权数据的一个或多个参数产生初始的第二动态审查散列值;
将所述初始的第一动态审查散列值存入所述存储器中;
将所述初始的第二动态审查散列值存入所述存储器中;
确定用户是否被授权修改所述动态数据对象;
如果用户未被授权修改所述动态数据对象,那么:
调整所述动态授权数据;
将所述调整后的动态授权数据存入所述存储器中;
应用第二动态散列算法、从包括所述调整后的动态授权数据的一个或多个参数产生调整后的第二动态审查散列值;以及
将所述调整后的第二动态审查散列值存入所述存储器中;以及
如果用户被授权修改动态数据对象,那么:
允许用户修改所述动态数据对象;
将所述修改后的动态数据对象存入所述存储器中;
应用第一动态散列算法、从包括所述修改后的动态数据对象的一个或多个参数产生调整后的第一动态审查散列值;以及
将所述调整后的第一动态审查散列值存入所述存储器中。
根据本发明的一种确定存储在存储器中的动态数据对象是否为未授权修改结果的方法,所述方法包括:
从所述存储器检索初始的第一动态审查散列值;
从所述存储器检索初始的第二动态审查散列值;
应用第一动态散列算法、从包括所述动态数据对象的一个或多个参数产生期望的第一动态审查散列值;
应用第二动态散列算法、从包括所述动态授权数据的一个或多个参数产生期望的第二动态审查散列值;
将所述期望的第一动态审查散列值与从所述存储器中检索的所述初始的第一动态审查散列值进行比较,如果所述期望的第一动态审查散列值与从所述存储器中检索的所述初始的第一动态审查散列值不匹配,那么,表明所述动态数据对象是未授权的修改结果;以及
将所述期望的第二动态审查散列值与从所述存储器中检索的所述初始的第二动态审查散列值进行比较,如果所述期望的第二动态审查散列值与从所述存储器中检索的所述初始的第二动态审查散列值不匹配,那么,表明所述动态数据对象是未授权的修改结果。
根据本发明的一种用于确保包括一个或多个动态数据项的动态数据对象完整性的装置,所述装置包括:
将所述动态数据对象存入存储器的逻辑部件;
将动态授权数据存入所述存储器的逻辑部件;
应用第一动态散列算法、从包括所述动态数据对象的一个或多个参数产生初始的第一动态审查散列值的逻辑部件;
应用第二动态散列算法、从包括所述动态授权数据的一个或多个参数产生初始的第二动态审查散列值的逻辑部件;
将所述初始的第一动态审查散列值存入所述存储器的逻辑部件;
将所述初始的第二动态审查散列值存入所述存储器的逻辑部件;
确定用户是否被授权修改所述动态数据对象的逻辑部件;
如果所述用户未被授权修改所述动态数据对象、则执行以下操作的逻辑部件:
调整所述动态授权数据;
将所述调整后的动态授权数据存入所述存储器中;
应用第二动态散列算法、从包括所述调整后的动态授权数据的一个或多个参数产生调整后的第二动态审查散列值;以及
将所述调整后的第二动态审查散列值存入所述存储器中;以及
如果所述用户被授权修改所述动态数据对象,则执行以下操作的逻辑部件:
允许所述用户修改所述动态数据对象;
将所述修改后的动态数据对象存入所述存储器中;
应用所述第一动态散列算法、从包括所述修改后的动态数据对象的一个或多个参数产生调整后的第一动态审查散列值;以及
将所述调整后的第一动态审查散列值存入所述存储器中。
根据本发明的一种用于确定存储在存储器中的动态数据对象是否为未授权的修改结果的装置,所述装置包括:
从存储器中检索初始的第一动态审查散列值的逻辑部件;
从存储器中检索初始的第二动态审查散列值的逻辑部件;
应用第一动态散列算法从包括所述动态数据对象的一个或多个参数产生期望的第一动态审查散列值的逻辑部件;
应用第二动态散列算法从包括所述动态授权数据的一个或多个参数产生期望的第二动态审查散列值的逻辑部件;
将所述期望的第一动态审查散列值与从所述存储器中检索的所述初始的第一动态审查散列值进行比较、如果所述期望的第一动态审查散列值与从所述存储器中检索的所述初始的第一动态审查散列值不匹配、则指示所述动态数据对象是未授权的修改结果的逻辑部件;以及
将所述期望的第二动态审查散列值与从所述存储器中检索的初始的第二动态审查散列值进行比较、如果所述期望的第二动态审查散列值与从所述存储器中检索的所述初始的第二动态审查散列值不匹配、则指示所述动态数据对象是未授权的修改结果的逻辑部件。
附图说明
参照附图,阅读以下详细说明将理解本发明的目的和优点,附图中:
图1是保护存储在存储器中的静态数据完整性的传统装置的方框图;
图2是说明根据本发明的一个实施例、确保只能对动态数据对象进行授权的修改的技术的流程图;
图3是根据本发明的一个实施例、保护存储在存储器中的动态数据完整性的装置的方框图;
图4是根据本发明的可供选择的实施例、保护存储在存储器中的动态数据完整性的装置的方框图;以及
图5是根据本发明的可供选择的实施例、保护存储在存储器中的动态数据完整性的装置的方框图。
具体实施方式
现在将参照附图说明本发明的各种特征,其中,用相同的参考符号来标识相同的部件。
现在将结合几个示范性实施例更详细说明本发明的各个方面。为了便于理解本发明,我们借助于用计算机系统单元执行一系列操作来说明本发明的许多方面。在每一个实施例中将可以看出,各种操作可以通过专用电路(例如,实现专用功能的互连的分立逻辑门)、通过由一个或多个处理器执行的程序指令、或者通过两者组合来完成。而且,本发明还可以考虑在任何形式的计算机可读载体、例如固体存储器、磁盘、光盘或载波(例如,无线电频率,音频或光频载波)中完整地实施,这些载体包含可以使处理器实现所述技术的相应的计算机指令集。因此,本发明的各个方面可以用许多不同形式实现,并且所有这些形式都属于本发明的范围。对于本发明的每一方面,任何这种形式的实施例都可以称为“配置”成完成所述操作的“逻辑”,或者称为完成所述操作的“逻辑”。
在本发明的一个方面,提供使系统免遭对存储在系统内部存储器中的数据的未授权修改的方法和装置。具体地说,本发明的技术针对为两类数据(静态数据和动态数据)提供保护的问题。如前所述,静态数据是装入系统后不应该修改的数据。(在某些例子中,可能期望允许修改静态数据,例如,所讨论的设备的授权的服务中心。这种可能性不改变设备的用户决不允许修改所述数据这一事实。)相反,动态数据则是设备用户可能允许修改的数据,但是只有他或她被赋予修改数据的权利(例如,系统操作员)时才能这样做。两类数据都应该防止未授权的修改。然而,当授权后,数据完整性机制不应该防止用户修改动态数据。此外,可能还希望防止两类数据被复制(即,克隆)到其它设备上。
为了便于说明本发明的各种基本原理,我们用Ms表示一个或多个需要保护的静态数据项,用Md表示一个或多个需要保护的动态数据项。一种授权机制应该是允许对动态数据Md进行授权修改。在这样一种授权机制的示范性实施例中,要求用户正确提供访问代码,以便允许修改动态数据。在所述示范性实施例中,访问代码以不可读形式作为静态数据存储在系统的存储器中。访问代码本身是一个随机选取的字符串。可以通过借助于加密算法E、利用秘密秘密密钥Ke对其数据加密来使访问代码成为不可读的。E的合适选择可以是例如上面引用的书(A.Menezes等著)所描述的三模式数据加密标准(DES)算法。但是,也可以选择应用任何其它加密算法。秘密密钥Ke的大小应足够长,以便防止穷举密钥搜索。使用当前技术至少要应用64位。对于三重DES,密钥的大小为112位。由于访问代码可以通过系统用户手工输入,所以其大小(用输入的符号数目表示)可以比较小。例如,在由GSM确定的动态数据的情况下,这种代码可以由最多8个十进制数字组成。
由于访问代码比较小,所以,所述授权方法可能容易受到穷举猜试的攻击。为了防止这种野蛮的攻击,最好还要提供一种限制用户连续输入不正确访问代码次数的机制。这可以通过提供一种保持跟踪输入错误访问代码次数的伪尝试计数器(false-attempt counter)实现。设TryCnt表示输入正确访问代码的失败次数。系统可以设计成当计数器达到预定的限制时则锁定。系统能否从所述锁定状态退出取决于设计的系统所需的安全等级。例如,用户可以使系统接入专门的服务中心,在那里,系统可以在安全控制条件下执行解锁。
在上述讨论中,确保静态数据Ms完整性的某些机制不仅需要保护确定系统参数属性(例如,在GSM中的IMEI)的静态数据部分,而且还要保护构成动态数据授权方法的不变数据单元,例如,表示将允许输入访问代码不成功的最大次数(“预定的限制”),以及授权方法本身的程序代码的执行。
也可以看到,保护动态数据完整性的某些机制不仅需要保护确定系统参数属性的动态数据部分(例如,GSM电话是否锁定到操作员网络上的状态标记),而且还要保护过时变化的授权机制方面的数据,例如,必须随每一次输入访问代码尝试失败而调整的失败尝试计数器TryCnt(例如,加1)。如果变量TryCnt没有被保护,不守纪律的用户可能相当容易对计数器复位,由此达到能够无限次输入尝试代码。存储在扩展存储器中的失败尝试计数器(TryCnt)和所有其它变量是随访问次数变化的,统称为动态授权数据,并用Md_auth表示。
可以按如下方法实现数据对象Ms,Md和Md_auth的完整性。首先讨论数据对象Ms,我们把静态审查散列值或特征Ss与数据对象Ms联系在一起。审查散列值Ss是对Ms(或者至少对其一部分)利用表示为Hs的散列算法计算出来的。Ss值存储在非易失性存储器中。在某些实施例中,Ss值可以与数据对象Ms一起在生产过程期间存储在快速程序存储器中。在另一些实施例中,正如在后面的说明中将假设,数据对象Ms和Ss存储在EEPROM中。这样做的优点是使得有可能在生产过程结束后安装保护的数据对象Ms。
为了使用户免于执行相同操作,系统的处理电路最好包括验证机制,例如,上面认定的美国专利No.6026293中公开的一种验证机制与美国专利No.4748668中公开的算法相结合,所述专利通过引用被全部包括在本文中。因此,根据本发明的一个方面,验证机制不仅用于控制对存储器内容的访问(正如美国专利No.6026293中指出的),而且也用于控制执行散列算法Hs的能力。
如前所述,还需要防止数据从一台设备复制(即,克隆)到另一台设备。为了实现这方面的保护,进一步使通过算法Hs从数据对象Ms计算出来的Ss值是静态参数的函数,所述静态参数最好是存储在处理电路或快速存储器中的设备序列号(用SerNo表示)。在最佳实施例中,系统的每一种实现方案被给予唯一的SerNo值。在另一些实施例中,可以给系统的有限数目的实现方案分配相同的SerNo值,同时,将唯一的SerNo值分配给许多不同系统。把SerNo值作为散列算法Hs的输入参数之一实际上不可能防止数据被系统重使用或者被克隆到另一个相似的系统中。应当指出,实现数据完整性保护的这种方法不需要存储秘密密钥。这是一个重要的优点,因为以保密方式存储秘密密钥要求用昂贵的技术实现反窜改。
现在,转到动态数据的保护,这里使用了两种动态审查散列值。第一动态审查散列值(用Sd表示)保护动态数据对象Md,并用第一动态散列算法(用Hd表示)计算。第二审查动态散列值(用S’d表示)保护动态授权数据(用Md_auth表示)并用第二动态散列算法(用Hd_auth表示)计算。对于Hd和Hd_auth可以使用不同的散列算法。因此,在其它实施例中,只要它们产生不同的特征值,它就可以更有效地应用相同算法(Hd=Hd_auth)。所述最新结果可以利用不同的输入参数产生第二动态审查散列值(S’d)而不是产生第一动态审查散列值(Sd)来实现。例如,第一动态审查散列值可以由确定的Sd=Hd(Md)产生,而第二动态审查散列值可以由确定的S’d=Hd(Md_auth)产生。本发明的这一方面还将在下面结合一些示范性实施例加以说明。
具有两个完全不同的审查散列值的目的如下。每一次,一个用户试图获得对非组合动态数据Md的修改权利时,他或她需要输入所要求的访问代码。但是,在可以使用授权机制前,Md和Md-auth值的完整性(例如,TryCnt)必须首先确认。如果Md和Md_auth通过了这一检查但是用户输入的访问代码错误,则数据对象Md_auth将调整(例如,变量TryCnt可以加1)。由于第二动态审查散列值S’d是Md_auth的函数,那么,就必须重新计算并将计算结果存储回到非易失性存储器中。如果它不是动态数据对象Md_auth的函数,那么,第一动态审查散列值Sd就不必重新计算。
另外,如果Md和Md_auth通过了完整性检查,用户输入了正确的访问代码,那么,用户就可以修改Md构成的动态数据。由于第一动态审查散列值Sd是Md的函数,因此必须重新计算Sd。正如下面将看到的,在某些实施例中,第二动态审查散列值S’d也是Md的函数,因而在这些情况下,也必须重新计算这时的S’d。
不知道访问代码就想修改Md值的恶意用户可能试图通过反复访问尝试并记录在动态数据Md、动态授权数据Md_auth以及它们相关的动态审查散列值(Sd和S’d)中出现的任何变化来绕过完整性机制。用这些知识,这类用户可能能了解保护机制的特征。然而,极大多数这类用户将看到与第二动态审查散列值S’d的产生相关联的特征,但是,不能看到第一动态审查散列值Sd中的任何变化,因为这种情况直到输入正确的访问代码才会出现。(假设用户被授权输入正确的访问代码,因此不会知到第一动态审查散列值Sd是如何变化的任何事情。)本发明的这一方面添加到保护机制的安全性中并且是既设置动态数据对象Md的审查散列值又设置动态授权数据Md_auth的审查散列值的原因。
图2是说明根据本发明的实施例、确保只有授权才能对动态数据对象Md进行修改的技术的流程图。在所述示范性实施例中,不允许做任何修改,如果未授权就对动态数据对象进行修改,那么要做的第一件事情就是产生第一和第二动态审查散列值的期望值,将这些值分别与存储值Sd和S’d进行比较(步骤201)。如果期望值中的任何一个与对应的存储值不匹配(判定模块203中的“NO”路径),则表明是未授权的修改并采取相应的步骤,例如锁定系统(步骤205)。
或者,如果两个期望动态审查散列值都与对应的存储值匹配(判定模块203中的“YES”路径),那么,动态数据对象Md和动态授权数据Md_auth(例如,TryCnt)都通过了完整性检查,并允许修改例程继续进行。
下面,例程确定用户是否被授权进行修改。在所述实施例中,它包括确定前面进行的失败尝试的次数,获得修改动态数据对象的授权是否超过预先确定的限制(决策模块207)。因此,动态授权数据Md_auth在本发明中包括计数器的值TryCnt。如果TryCnt的当前值比预先确定的限制大(决策模块207中的“YES”路径),那么不允许再进行尝试,并使系统进入锁定状态(步骤205)。
如果访问失败尝试的次数没有超过预定的限制(决策模块207中的“NO”路径),则通过确定用户是否被授权修改使授权例程继续(决策模块209)。这可以以任何方式进行。例如,如上所述,用户可以提供一个与预先存入值进行比较的访问代码。然而,使用的具体授权技术不是本发明的实质方面,可以选择应用其它技术。例如,可以要求用户插入一张有效的密钥卡或其它硬件保密卡。在其它选择中,可以检查用户的一些物理属性,例如指纹,以便确认所述用户已被授权。
如果用户没有通过授权检查(判定模块209中的“NO”路径),就调整动态授权数据Md_auth,这时,失败尝试计数器(TryCnt)加1(步骤211),因此它表示已经进行了另一次失败的尝试。由于第二个动态审查散列值S’d是失败尝试计数器的函数,所以它也将重新计算并存回到存储器中(步骤213)。
如果用户通过了授权检查(判定模块209中的“YES”路径),那么,就允许修改动态数据对象Md(步骤215)。在所述修改之后,由于它是动态数据对象Md的函数,所以重新计算第一动态审查散列值Sd并存回到存储器中(步骤217)。在某些实施例中,最好第二动态审查散列值S’d不仅是动态授权数据的函数、而且也是动态数据对象Md的函数。这可能是有用的,例如,它将使恶意的用户确定动态授权数据和第二动态审查散列值之间的映射更加困难。在这种情况下,或者如果TryCnt被调整(例如,复位到初始值),那么,每当对动态数据对象Md进行授权的修改,第二动态审查散列值S’d就需要重新计算并且将结果存回到存储器中(选择步骤219)。
上述技术仅仅是参照本发明所有实施例的许多可能的实施例中的一个。例如,在确定用户是否授权进行修改之前对动态数据对象Md和动态授权数据Md_auth的完整性进行检查不是必不可少的。可以产生另一个实施例,在所述实施例中,完整性的检查可以在进行确定用户所需的修改前的那一刻执行,例如,在用户已经证明自己被授权之后、或者在发现TryCnt还没有达到其预定限制之后而用户已经证明自己被授权之前。
上述技术可以用一些不同方法实现。下面将结合图3的方框图说明第一个实施例。在所述系统中,包括处理电路300的ASIC通过系统总线307与快速程序存储器301、RAM 303和EEPROM 305互连。处理电路300包括微处理器309、定时器和控制器的逻辑电路311以及两种形式的存储器:PSRAM 313和IROM 315。IROM 315存储引导代码317以及在下面将更详细说明的其它数据。
现在将集中讨论本实施例与确保静态数据Ms完整性相关的那些方面,其中Ms与其它相关的静态审查散列值Ss一起存储在EEPROM305中。如前所述,静态审查散列值Ss由静态散列算法Hs产生,其程序代码319存储在IROM 315中。存储在EEPROM 305中的静态审查散列值Ss的值可以在系统外、在将静态数据Ms转移到EEPROM 305中之前产生,或者,在静态数据对象Ms首先转移到EEPROM 305时通过处理电路300产生。在后一种情况下,最好通过授权程序对访问执行散列算法Hs的程序代码319并且将其计算值存储到处理电路300外面的非易失性存储器(例如,EEPROM 305)中的能力进行控制。公用/专用密钥加密方案可用于此目的。程序代码323和用于授权程序的公开密钥321存储在处理电路300的IROM 315中。
如前所述,通过静态散列算法Hs计算的静态审查散列代码Ss的值不仅仅随使用哪一种静态散列算法而变而且与输入参数的值有关。可以以静态数据Ms的函数的形式严格计算Ss。但是,在本实施例中,最好还有防止复制的保护。为了实现这种保护,向静态散列算法Hs输入的参数为静态数据Ms和唯一的(或几乎是唯一的)静态参数,例如,上述参数SerNo。这可以表示为以下形式:
Ss=Hs(Ms,SerNo)
SerNo的值可以在生产快速程序存储器301时存储到快速程序存储器301中,并要用不能改变其值的方法完成。
在静态审查散列值Ss被存储到EEPROM 305中后,执行静态散列算法Hs的程序代码319,无论何时都需要确保存储在EEPROM 305中的静态数据Ms不被修改。例如,这可以在定时器和控制器逻辑电路311的指导下定期地进行。将静态数据Ms和SerNo作为输入信号提供给静态散列算法Hs。新产生的绝不会出现在处理电路300外的静态审查散列值与存储在EEPROM 305中的静态审查散列值进行比较。任何不匹配都表示静态数据Ms被修改了。
现在,集中讨论包含在确保动态数据Md完整性的那些方面。动态数据对象Md与动态授权数据(此时为失败尝试计数器(TryCnt))、以及第一和第二动态审查散列值Sd和S’d一起存储在EEPROM 305中。其程序代码325存储在IROM 315中的单个动态散列算法Hd根据接收的输入参数计算预期的第一或第二动态审查散列值Sd或S’d。
在将动态数据Md转移到系统存储器(例如,EEPROM 305)中之前,可以在系统外面计算第一第二动态审查散列值Sd和S’d的初始值,或者当动态数据对象Md被转移到系统的存储器中、但是在静态数据对象Ms和Ss也已经保存之后,可以在处理电路300内计算。
通过动态散列算法Hd计算的第一动态审查散列值Sd的值是动态数据对象Md的函数,但最好不是失败尝试计数器值TryCnt的函数。在最佳实施例中,第一动态审查散列值Sd取决于Hd本身和Md以及Ss的值。这可以表示为以下形式:
Sd=Hd(Md,Ss)
将可以看到,由于Ss是SerNo本身的函数,所以Sd也是SerNo的函数。
类似地,通过动态散列算法Hd来计算第二动态审查散列值S’d,后者至少是动态授权数据Md_auth的函数,在此情况下所述动态授权数据Md_auth是失败尝试计数器值TryCnt。然而,为了使保护方案更难反演,第二动态审查散列值S’d最好依赖于Hd本身和Md、SerNo以及TryCnt的值。这可以表示为以下形式:
S’d=Hd(Md,SerNo,TryCnt)
为了表明其有效性,动态数据Md必须通过两种测试。一种测试是,保存的数据由处理电路300通过计算给定控制瞬间的期望的第一审查散列值来检查。把决不会出现在处理电路300外的所述计算值与预先存储在EEPROM 305中的第一动态审查散列值Sd进行比较。如果两个值相互不同,那么,表明动态数据Md已被修改。
在第二种测试中,存储的数据由处理电路300通过计算给定瞬间的期望的第二动态审查散列值来检查。把也决不会出现在处理电路300外的所述计算值与预先存储在EEPROM 305中的第二动态审查散列值S’d进行比较。同样,如果两个值相互不同,那么,表明动态数据Md已被修改。应当指出,即使第二动态审查散列值S’d不是动态数据对象Md的函数,所述不匹配也表示动态授权数据(例如,失败尝试计数器值TryCnt)被窜改。因此,也可以设想,动态数据对象Md已经在未授权的情况下被修改。
只有两种测试都成功地通过时动态数据对象Md才看作为可信的(即没有出现未授权的修改)。如果动态数据对象Md已被证实为可信的,那么,用户可以通过成功地完成访问过程来获得通向修改动态数据对象Md的权力的入口。在这里说明的示范性实施例中,访问过程包括用户通过输入设备,例如键盘(未示出),输入访问代码。期望的访问代码327以加密形式被存储在EEPROM 305中并且随后在处理电路300内利用秘密密钥Ke 329和解密算法进行加密,,所述解密算法的程序代码331存储在IROM 315中。
如果用户成功地完成了访问过程并修改了动态数据对象Md,那么,就执行动态散列算法325,计算第一和第二动态审查散列值Sd和S’d的新值。(在第二动态审查散列值不是动态数据对象Md的函数的实施例中,如果动态授权数据—例如,失败尝试计数器的值TryCnt—还没有被修改,那么,仅仅需要计算第一动态审查散列值的新值。)然后,将这些新值存储到EEPROM 305中,供以后的动态数据完整性检查使用。如前所述,由于用户已经确认,他或她被授权,因而没有恶意,因此总线307上的这些值的表示被看作是安全的。
如果用户的访问尝试失败了,就需要修改存储在EEPROM 305中的动态授权数据(在本实施例中为失败尝试计数器TryCnt)。在进行这种修改时,由于S’d是TryCnt的函数,所以,保存的第二动态审查散列值S’d将不再有效。因此,必须执行动态散列算法Hd以便重新计算第二动态审查散列值S’d的新值。然后,将所述新值存入EEPROM305中。在进行这些操作时,把第二动态审查散列值S’d送入总线307,因此有可能把第二动态审查散列值暴露给恶意用户,由于他或她仍将没有足够的信息指明如何可以计算第一动态审查散列值Sd,这时,用户将没有足够的信息去确定如何绕过动态数据完整性检查机制。由于第一和第二动态审查散列值都需要成功地完成动态数据完整性检查机制,因此系统是安全的。
在图4的方框图中说明了本发明的可供选择的实施例。在所述实施例中,与使用秘密密钥Ke相关联的有价值的加密配置方案避免使用公用/专用密码系统保护访问代码。所述实施例不同于图3所示的实施例之处在于:第二公开密钥401存储在IROM 215中。允许将第二公开密钥401存储在IROM 215中是第二公开密钥401的公开特征。相反,保持图3的秘密密钥Ke 329的秘密需要将所述密钥存储在安全的不希望读出的地方。
可以在不泄漏由生产厂家使用的匹配的秘密密钥的的情况下使第二公开密钥401成为公开的。因此,在所述实施例中,有可能避免为安全地存储秘密密钥需要的昂贵技术。
一种系统和方法(例如,在美国专利No.4405829的中公开的)可以用来有效地对图4所示实施例的访问系统进行加密。美国专利No.4405829通过引用而被全部包括在本文中。
由于要求使用非标准的处理电路(例如,所述电路不仅包括标准的微处理器,而且还包括特殊的程序代码和存储在ASIC的IROM中的参数),上述实施例可能要承担一些附加的费用才能实现。在图5的方框图中说明的另一个可选择的实施例中可避免所述成本。在所述实施例中,所有的程序代码和与静态和动态数据完整性机制相关联的参数都存储在快速程序存储器501中,而不是IROM 315中。为了消除恶意用户在快速程序存储器中对所述数据进行简单编程的可能性,在编程后,应对快速程序存储器的内容使用部分冻结或琐定(即设置为非重编程的)功能。在图5中,示出了存储在快速程序存储器501的可锁定部分503中的所述程序代码和相关参数。
已经参考具体的实施例对本发明进行了说明。但是,本专业的技术人员将容易明白,用特殊形式而不是上述最佳实施例能够实现本发明。可以在不脱离本发明精神的情况下这样做。最佳实施例仅仅是说明,并没有考虑任何限制。本发明的范围由所附权利要求书限定,而不是前面的描述,所有属于所述权利要求书范围内的修改和等价内容都包括在内。
Claims (36)
1.一种确保动态数据对象完整性的方法,所述动态数据对象包括一个或多个数据项,所述方法包括:
将所述动态数据对象存入存储器中;
将动态授权数据存入所述存储器中;
应用第一动态散列算法、从包括所述动态数据对象的一个或多个参数产生初始的第一动态审查散列值;
应用第二动态散列算法、从包括所述动态授权数据的一个或多个参数产生初始的第二动态审查散列值;
将所述初始的第一动态审查散列值存入所述存储器中;
将所述初始的第二动态审查散列值存入所述存储器中;
确定用户是否被授权修改所述动态数据对象;
如果用户未被授权修改所述动态数据对象,那么:
调整所述动态授权数据;
将所述调整后的动态授权数据存入所述存储器中;
应用第二动态散列算法、从包括所述调整后的动态授权数据的一个或多个参数产生调整后的第二动态审查散列值;以及
将所述调整后的第二动态审查散列值存入所述存储器中;以及
如果用户被授权修改动态数据对象,那么:
允许用户修改所述动态数据对象;
将所述修改后的动态数据对象存入所述存储器中;
应用第一动态散列算法、从包括所述修改后的动态数据对象的一个或多个参数产生调整后的第一动态审查散列值;以及
将所述调整后的第一动态审查散列值存入所述存储器中。
2.如权利要求1所述的方法,其特征在于:所述从其中产生所述第二动态审查散列值的一个或多个参数还包括与所述动态数据对象有关的参数;以及
所述方法还包括:
如果用户被授权修改所述动态数据对象,那么:
利用所述第二动态散列算法,从包括所述修改后的动态数据对象、预先确定的值以及静态参数的一个或多个参数产生调整后的第二动态审查散列值;以及
将所述调整后的第二动态审查散列值存入所述存储器中。
3.如权利要求1所述的方法,其特征在于还包括:
在允许所述用户修改所述动态数据对象之前,确定所述动态数据对象是否为未授权的修改结果,其中,进行所述确定的方法是:
利用所述第一动态散列算法、从包括所述动态数据对象的所述一个或多个参数产生期望的第一动态审查散列值;
应用第二动态散列算法、从包括所述动态授权数据的所述一个或多个参数产生期望的第二动态审查散列值;
将所述期望的第一动态审查散列值与存储在所述存储器中的所述初始的第一动态审查散列值进行比较,如果所述期望的第一动态审查散列值与存储在所述存储器中的所述初始的第一动态审查散列值不匹配,则表明所述动态数据对象是未授权的修改结果;以及
将所述期望的第二动态审查散列值与存储在所述存储器中的所述初始的第二动态审查散列值进行比较,如果所述期望的第二动态审查散列值与存储在所述存储器中的所述初始的第二动态审查散列值不匹配,则表明所述动态数据对象是未授权的修改结果。
4.如权利要求3所述的方法,其特征在于:所述动态数据对象是否为未授权的修改结果的所述确定是在确定所述用户是否被授权修改所述动态数据对象之前进行的。
5.如权利要求1所述的方法,其特征在于:所述第一动态散列算法与第二动态散列算法相同。
6.如权利要求1所述的方法,其特征在于:所述动态授权数据包括失败尝试计数器值,后者表示为获得修改所述动态数据对象的授权已经进行了多少次失败尝试。
7.如权利要求1所述的方法,其特征在于:
所述方法在第一设备中实现;以及
从其中产生所述第一动态审查散列值的所述一个或多个参数还包括静态参数。
8.如权利要求7所述的方法,其特征在于:所述静态参数是把所述第一设备与第二设备区别开的序列号。
9.如权利要求8所述的方法,其特征在于:从其产生中所述第二动态审查散列值的所述一个或多个参数还包括静态参数。
10.如权利要求1所述的方法,其特征在于:
所述方法在第一设备中实现;以及
从其中产生所述第二动态审查散列值的所述一个或多个参数还包括静态参数。
11.如权利要求10所述的方法,其特征在于:所述静态参数是把所述第一设备与第二设备区别开的序列号。
12.如权利要求1所述的方法,其特征在于:从其中产生所述第一动态审查散列值的所述一个或多个参数还包括通过静态散列算法产生作为静态数据对象的函数的静态审查散列值。
13.如权利要求12所述的方法,其特征在于:所述静态散列算法与所述第一动态散列算法相同。
14.如权利要求13所述的方法,其特征在于:所述第一动态散列算法与所述第二动态散列算法相同。
15.如权利要求1所述的方法,其特征在于:确定所述用户是否被授权修改所述动态数据对象的操作包括:
接收所述用户的访问代码;以及
确定所述访问代码是否为授权的访问代码。
16.如权利要求15所述的方法,其特征在于:所述确定访问代码是否为授权的访问代码的操作包括:
从存储器检索加密的授权访问代码;
将所述加密的授权访问代码解密;以及
将所述解密的授权访问代码与从所述用户接收到的所述访问代码比较。
17.如权利要求15所述的方法,其特征在于:所述确定访问代码是否为授权的访问代码的操作包括:
从存储器检索被加密的授权访问代码;
对从所述用户接收到的所述访问代码加密;以及
将所述检索的加密的授权访问代码与从所述用户接收到的加密的访问代码进行比较。
18.一种确定存储在存储器中的动态数据对象是否为未授权修改结果的方法,所述方法包括:
从所述存储器检索初始的第一动态审查散列值;
从所述存储器检索初始的第二动态审查散列值;
应用第一动态散列算法、从包括所述动态数据对象的一个或多个参数产生期望的第一动态审查散列值;
应用第二动态散列算法、从包括所述动态授权数据的一个或多个参数产生期望的第二动态审查散列值;
将所述期望的第一动态审查散列值与从所述存储器中检索的所述初始的第一动态审查散列值进行比较,如果所述期望的第一动态审查散列值与从所述存储器中检索的所述初始的第一动态审查散列值不匹配,那么,表明所述动态数据对象是未授权的修改结果;以及
将所述期望的第二动态审查散列值与从所述存储器中检索的所述初始的第二动态审查散列值进行比较,如果所述期望的第二动态审查散列值与从所述存储器中检索的所述初始的第二动态审查散列值不匹配,那么,表明所述动态数据对象是未授权的修改结果。
19.一种用于确保包括一个或多个动态数据项的动态数据对象完整性的装置,所述装置包括:
将所述动态数据对象存入存储器的逻辑部件;
将动态授权数据存入所述存储器的逻辑部件;
应用第一动态散列算法、从包括所述动态数据对象的一个或多个参数产生初始的第一动态审查散列值的逻辑部件;
应用第二动态散列算法、从包括所述动态授权数据的一个或多个参数产生初始的第二动态审查散列值的逻辑部件;
将所述初始的第一动态审查散列值存入所述存储器的逻辑部件;
将所述初始的第二动态审查散列值存入所述存储器的逻辑部件;
确定用户是否被授权修改所述动态数据对象的逻辑部件;
如果所述用户未被授权修改所述动态数据对象、则执行以下操作的逻辑部件:
调整所述动态授权数据;
将所述调整后的动态授权数据存入所述存储器中;
应用第二动态散列算法、从包括所述调整后的动态授权数据的一个或多个参数产生调整后的第二动态审查散列值;以及
将所述调整后的第二动态审查散列值存入所述存储器中;以及
如果所述用户被授权修改所述动态数据对象,则执行以下操作的逻辑部件:
允许所述用户修改所述动态数据对象;
将所述修改后的动态数据对象存入所述存储器中;
应用所述第一动态散列算法、从包括所述修改后的动态数据对象的一个或多个参数产生调整后的第一动态审查散列值;以及
将所述调整后的第一动态审查散列值存入所述存储器中。
20.如权利要求19所述的装置,其特征在于:从其中产生所述第二动态审查散列值的所述一个或多个参数还包括与所述动态数据对象有关的参数;以及
所述装置还包括:
如果所述用户被授权修改所述动态数据对象,则执行以下操作的逻辑部件:
应用所述第二动态散列算法、从包括所述修改后的动态数据对象、预先确定的值以及静态参数的一个或多个参数产生调整后的第二动态审查散列值;以及
将所述调整后的第二动态审查散列值存入所述存储器中。
21.如权利要求19所述的装置,其特征在于还包括:
逻辑部件,它在允许所述用户修改所述动态数据对象之前运行、以便确定所述动态数据对象是否为未授权的修改结果,其中,执行所述确定操作的步骤如下:
应用所述第一动态散列算法、从包括所述动态数据对象的所述一个或多个参数产生期望的第一动态审查散列值;
应用所述第二动态散列算法,从包括所述动态授权数据的所述一个或多个参数产生期望的第二动态审查散列值;
将所述期望的第一动态审查散列值与存储在所述存储器中的所述初始的第一动态审查散列值进行比较,如果所述期望的第一动态审查散列值与存储在所述存储器中的所述初始的第一动态审查散列值不匹配,那么,表明所述动态数据对象是未授权的修改结果;以及
将所述期望的第二动态审查散列值与存储在所述存储器中的所述初始的第二动态审查散列值进行比较,如果所述期望的第二动态审查散列值与存储在所述存储器中的所述初始的第二动态审查散列值不匹配,那么,表明所述动态数据对象是未授权的修改结果。
22.如权利要求21所述的装置,其特征在于:所述动态数据对象是否为未授权的修改结果的确定是在确定所述用户是否被授权修改所述动态数据对象之前进行的。
23.如权利要求19所述的装置,其特征在于:所述第一动态散列算法与所述第二动态散列算法相同。
24.如权利要求19所述的装置,其特征在于:所述动态授权数据包括失败尝试计数器值,后者表示为获得修改所述动态数据对象的授权已经进行了多少次失败尝试。
25.如权利要求19所述的装置,其特征在于:
所述装置在第一设备中实现;以及
从其中产生所述第一动态审查散列值的所述一个或多个参数还包括静态参数。
26.如权利要求25所述的装置,其特征在于:所述静态参数是将所述第一设备与第二设备区别开的序列号。
27.如权利要求26所述的装置,其特征在于:从其中产生所述第二动态审查散列值的所述一个或多个参数还包括所述静态参数。
28.如权利要求19所述的装置,其特征在于:
所述装置在第一设备中实现;以及
从其中产生所述第二动态审查散列值的所述一个或多个参数还包括静态参数。
29.如权利要求28所述的装置,其特征在于:所述静态参数是将所述第一设备与第二设备区别开的序列号。
30.如权利要求19所述的装置,其特征在于:从其中产生所述第一动态审查散列值的所述一个或多个参数还包括静态审查散列值,所述静态审查散列值是通过静态散列算法、作为静态数据对象的函数产生的。
31.如权利要求30所述的装置,其特征在于:所述静态散列算法与所述第一动态散列算法相同。
32.如权利要求31所述的装置,其特征在于:所述第一动态散列算法与所述第二动态散列算法相同。
33.如权利要求19所述的装置,其特征在于:确定所述用户是否被授权修改所述动态数据对象的所述逻辑部件包括:
从所述用户接收访问代码的逻辑部件;以及
确定所述访问代码是否为授权的访问代码的逻辑部件。
34.如权利要求33所述的装置,其特征在于:确定所述访问代码是否为所述授权的访问代码的所述逻辑部件包括:
从存储器检索加密的授权访问代码的逻辑部件;
对所述加密的授权访问代码进行解密的逻辑部件;以及
将所述解密的授权访问代码与从所述用户接收到的所述访问代码进行比较的逻辑部件。
35.如权利要求33所述的装置,其特征在于:确定所述访问代码是否为所述授权的访问代码的所述逻辑部件包括:
从存储器检索加密的授权访问代码的逻辑部件;
对从所述用户接收到的所述访问代码加密的逻辑部件;以及
将所述检索的加密的授权访问代码与从所述用户接收到的所述加密的访问代码进行比较的逻辑部件。
36.一种用于确定存储在存储器中的动态数据对象是否为未授权的修改结果的装置,所述装置包括:
从存储器中检索初始的第一动态审查散列值的逻辑部件;
从存储器中检索初始的第二动态审查散列值的逻辑部件;
应用第一动态散列算法从包括所述动态数据对象的一个或多个参数产生期望的第一动态审查散列值的逻辑部件;
应用第二动态散列算法从包括所述动态授权数据的一个或多个参数产生期望的第二动态审查散列值的逻辑部件;
将所述期望的第一动态审查散列值与从所述存储器中检索的所述初始的第一动态审查散列值进行比较、如果所述期望的第一动态审查散列值与从所述存储器中检索的所述初始的第一动态审查散列值不匹配、则指示所述动态数据对象是未授权的修改结果的逻辑部件;以及
将所述期望的第二动态审查散列值与从所述存储器中检索的初始的第二动态审查散列值进行比较、如果所述期望的第二动态审查散列值与从所述存储器中检索的所述初始的第二动态审查散列值不匹配、则指示所述动态数据对象是未授权的修改结果的逻辑部件。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US23493500P | 2000-09-26 | 2000-09-26 | |
US60/234,935 | 2000-09-26 | ||
US09/951,676 US7043636B2 (en) | 2000-09-26 | 2001-09-14 | Data integrity mechanisms for static and dynamic data |
US09/951,676 | 2001-09-14 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1466710A CN1466710A (zh) | 2004-01-07 |
CN1210637C true CN1210637C (zh) | 2005-07-13 |
Family
ID=26928409
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB018162185A Expired - Lifetime CN1210637C (zh) | 2000-09-26 | 2001-09-25 | 保护静态和动态数据免遭未授权操作的系统 |
Country Status (9)
Country | Link |
---|---|
US (1) | US7043636B2 (zh) |
EP (1) | EP1325401B1 (zh) |
CN (1) | CN1210637C (zh) |
AT (1) | ATE355551T1 (zh) |
AU (1) | AU2002212279A1 (zh) |
DE (1) | DE60126968T2 (zh) |
ES (1) | ES2278793T3 (zh) |
MY (1) | MY127742A (zh) |
WO (1) | WO2002027441A1 (zh) |
Families Citing this family (35)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030159047A1 (en) * | 2000-09-26 | 2003-08-21 | Telefonaktiebolaget L M Ericsson (Publ) | Method of securing and exposing a logotype in an electronic device |
US7043636B2 (en) | 2000-09-26 | 2006-05-09 | Telefonaktiebolaget Lm Ericsson (Publ) | Data integrity mechanisms for static and dynamic data |
JP3980327B2 (ja) * | 2001-11-01 | 2007-09-26 | 富士通株式会社 | 改ざん検出システム、改ざん検出方法、およびプログラム |
US20030188180A1 (en) * | 2002-03-28 | 2003-10-02 | Overney Gregor T. | Secure file verification station for ensuring data integrity |
WO2003093961A2 (en) * | 2002-05-02 | 2003-11-13 | Shieldip, Inc. | Method and apparatus for protecting information and privacy |
GB0212318D0 (en) * | 2002-05-28 | 2002-07-10 | Symbian Ltd | Tamper evident removable media storing executable code |
US7296156B2 (en) * | 2002-06-20 | 2007-11-13 | International Business Machines Corporation | System and method for SMS authentication |
US20040003265A1 (en) * | 2002-06-26 | 2004-01-01 | International Business Machines Corporation | Secure method for BIOS flash data update |
AU2003281380A1 (en) * | 2002-07-02 | 2004-01-23 | Telefonaktiebolaget Lm Ericsson (Publ) | Method of securing and exposing a logotype in an electronic device |
US7877607B2 (en) * | 2002-08-30 | 2011-01-25 | Hewlett-Packard Development Company, L.P. | Tamper-evident data management |
JP2004302921A (ja) * | 2003-03-31 | 2004-10-28 | Toshiba Corp | オフライン情報を利用したデバイス認証装置及びデバイス認証方法 |
JP4036838B2 (ja) * | 2004-03-12 | 2008-01-23 | インターナショナル・ビジネス・マシーンズ・コーポレーション | セキュリティ装置、情報処理装置、セキュリティ装置が実行する方法、情報処理装置が実行する方法、該方法を実行させるための装置実行可能なプログラムおよびチケット・システム |
US7287159B2 (en) * | 2004-04-01 | 2007-10-23 | Shieldip, Inc. | Detection and identification methods for software |
JP4783112B2 (ja) * | 2005-10-11 | 2011-09-28 | 株式会社日立製作所 | 署名履歴保管装置 |
US7681050B2 (en) * | 2005-12-01 | 2010-03-16 | Telefonaktiebolaget L M Ericsson (Publ) | Secure and replay protected memory storage |
US8356178B2 (en) * | 2006-11-13 | 2013-01-15 | Seagate Technology Llc | Method and apparatus for authenticated data storage |
US20080134321A1 (en) * | 2006-12-05 | 2008-06-05 | Priya Rajagopal | Tamper-resistant method and apparatus for verification and measurement of host agent dynamic data updates |
TWI402715B (zh) * | 2007-03-23 | 2013-07-21 | Via Tech Inc | 應用程式保護系統及方法 |
US8209550B2 (en) * | 2007-04-20 | 2012-06-26 | Telefonaktiebolaget Lm Ericsson (Publ) | Method and apparatus for protecting SIMLock information in an electronic device |
US9497028B1 (en) | 2007-05-03 | 2016-11-15 | Google Inc. | System and method for remote storage auditing |
US10248483B2 (en) * | 2007-10-19 | 2019-04-02 | Oracle International Corporation | Data recovery advisor |
EP2071898A1 (en) * | 2007-12-10 | 2009-06-17 | Telefonaktiebolaget LM Ericsson (publ) | Method for alteration of integrity protected data in a device, computer program product and device implementing the method |
US20090193265A1 (en) * | 2008-01-25 | 2009-07-30 | Sony Ericsson Mobile Communications Ab | Fast database integrity protection apparatus and method |
FR2930065A1 (fr) * | 2008-04-11 | 2009-10-16 | Thales Sa | Procede de securisation de donnees d'une carte a puce |
US9559868B2 (en) | 2011-04-01 | 2017-01-31 | Onavo Mobile Ltd. | Apparatus and methods for bandwidth saving and on-demand data delivery for a mobile device |
US9348790B2 (en) * | 2011-04-01 | 2016-05-24 | Facebook, Inc. | Method for efficient use of content stored in a cache memory of a mobile device |
US20140173294A1 (en) * | 2012-12-14 | 2014-06-19 | Broadcom Corporation | Techniques for emulating an eeprom device |
US20150292985A1 (en) * | 2014-04-11 | 2015-10-15 | Stride Tool, Inc. | Smart hvac manifold system |
US9690922B2 (en) * | 2014-07-28 | 2017-06-27 | Avago Technologies General Ip (Singapore) Pte. Ltd. | System, apparatus, and method for anti-replay protection of data stored in a non-volatile memory device |
US10015015B1 (en) * | 2014-09-30 | 2018-07-03 | EMC IP Holding Company LLC | Method and apparatus for verifying system log integrity |
US10223294B2 (en) * | 2015-09-01 | 2019-03-05 | Nxp Usa, Inc. | Fast secure boot from embedded flash memory |
CN108234491B (zh) * | 2018-01-02 | 2021-01-01 | 武汉斗鱼网络科技有限公司 | 协议关联验证方法、装置及电子设备 |
US10693641B2 (en) * | 2018-01-12 | 2020-06-23 | Blackberry Limited | Secure container based protection of password accessible master encryption keys |
WO2020118639A1 (zh) * | 2018-12-13 | 2020-06-18 | 深圳市大疆软件科技有限公司 | 无人飞行器及其固件升级方法 |
US11907402B1 (en) | 2021-04-28 | 2024-02-20 | Wells Fargo Bank, N.A. | Computer-implemented methods, apparatuses, and computer program products for frequency based operations |
Family Cites Families (39)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4405829A (en) | 1977-12-14 | 1983-09-20 | Massachusetts Institute Of Technology | Cryptographic communications system and method |
US4748668A (en) | 1986-07-09 | 1988-05-31 | Yeda Research And Development Company Limited | Method, apparatus and article for identification and signature |
US5442645A (en) | 1989-06-06 | 1995-08-15 | Bull Cp8 | Method for checking the integrity of a program or data, and apparatus for implementing this method |
JPH05504428A (ja) * | 1989-08-01 | 1993-07-08 | シリコン・グラフィックス,インコーポレイテッド | コンピュータオペレーティング及びファイル管理システム用ファイル変更モニタ |
US5050212A (en) * | 1990-06-20 | 1991-09-17 | Apple Computer, Inc. | Method and apparatus for verifying the integrity of a file stored separately from a computer |
US5606609A (en) * | 1994-09-19 | 1997-02-25 | Scientific-Atlanta | Electronic document verification system and method |
US5629980A (en) * | 1994-11-23 | 1997-05-13 | Xerox Corporation | System for controlling the distribution and use of digital works |
US5606315A (en) | 1994-12-12 | 1997-02-25 | Delco Electronics Corp. | Security method for protecting electronically stored data |
US5689565A (en) | 1995-06-29 | 1997-11-18 | Microsoft Corporation | Cryptography system and method for providing cryptographic services for a computer application |
EP0753816A1 (en) | 1995-07-07 | 1997-01-15 | Thomson Consumer Electronics, Inc. | A method and apparatus for storing sensitive information securely in a relatively insecure storage medium |
US5933851A (en) * | 1995-09-29 | 1999-08-03 | Sony Corporation | Time-stamp and hash-based file modification monitor with multi-user notification and method thereof |
US6467085B2 (en) | 1995-10-17 | 2002-10-15 | Telefonaktiebolaget L M Ericsson (Publ) | System and method for reducing coupling in an object-oriented programming environment |
US5774545A (en) | 1996-03-28 | 1998-06-30 | Lucent Technologies Inc. | Method and apparatus for enhancing security in and discouraging theft of VLSI and ULSI devices |
US5802592A (en) | 1996-05-31 | 1998-09-01 | International Business Machines Corporation | System and method for protecting integrity of alterable ROM using digital signatures |
US6026293A (en) | 1996-09-05 | 2000-02-15 | Ericsson Inc. | System for preventing electronic memory tampering |
WO1998019239A1 (en) | 1996-10-25 | 1998-05-07 | Raytheon Systems Canada Ltd. | Distributed virtual software interface or machine |
US5949882A (en) | 1996-12-13 | 1999-09-07 | Compaq Computer Corporation | Method and apparatus for allowing access to secured computer resources by utilzing a password and an external encryption algorithm |
AUPO704097A0 (en) | 1997-05-29 | 1997-06-19 | Griffits, John Philip | Priority display of advertising on a personal computer |
US5919257A (en) | 1997-08-08 | 1999-07-06 | Novell, Inc. | Networked workstation intrusion detection system |
EP1040678B1 (en) | 1997-12-12 | 2005-10-26 | Alcatel USA Sourcing, L.P. | Network management |
US6098079A (en) * | 1998-04-02 | 2000-08-01 | Mitsubishi Electric Information Technology Center America, Inc. (Ita) | File version reconciliation using hash codes |
US6285985B1 (en) | 1998-04-03 | 2001-09-04 | Preview Systems, Inc. | Advertising-subsidized and advertising-enabled software |
US6808111B2 (en) | 1998-08-06 | 2004-10-26 | Visa International Service Association | Terminal software architecture for use with smart cards |
US6463535B1 (en) | 1998-10-05 | 2002-10-08 | Intel Corporation | System and method for verifying the integrity and authorization of software before execution in a local platform |
CA2366562A1 (en) | 1999-04-12 | 2000-10-19 | Silanis Technology Inc. | Secure electronic document creation, approval and distribution method in an open and distributed network environment |
US6373498B1 (en) | 1999-06-18 | 2002-04-16 | Phoenix Technologies Ltd. | Displaying images during boot-up and shutdown |
KR20000030060A (ko) | 1999-06-23 | 2000-06-05 | 주진용 | 소프트웨어를 이용한 광고방법 |
US6467086B1 (en) | 1999-07-20 | 2002-10-15 | Xerox Corporation | Aspect-oriented programming |
CN1305251C (zh) | 1999-08-21 | 2007-03-14 | 卓信科技有限公司 | 电子文件及其打印副本的合法性保护 |
WO2001014960A2 (en) | 1999-08-23 | 2001-03-01 | Koninklijke Philips Electronics N.V. | Generic interface for a software module |
US6317659B1 (en) | 1999-12-09 | 2001-11-13 | Honeywell International Inc. | Layered subsystem architecture for a flight management system |
US6753887B2 (en) | 2000-03-20 | 2004-06-22 | At&T Corp. | Method and apparatus for dynamically displaying brand information in a user interface |
GB0011954D0 (en) | 2000-05-17 | 2000-07-05 | Univ Surrey | Protocol stacks |
US7139709B2 (en) | 2000-07-20 | 2006-11-21 | Microsoft Corporation | Middleware layer between speech related applications and engines |
US7043636B2 (en) | 2000-09-26 | 2006-05-09 | Telefonaktiebolaget Lm Ericsson (Publ) | Data integrity mechanisms for static and dynamic data |
TW548535B (en) | 2000-10-17 | 2003-08-21 | Ericsson Telefon Ab L M | Security system |
US7353494B2 (en) | 2000-10-26 | 2008-04-01 | Microsoft Corporation | System and method supporting configurable object definitions |
US7415270B2 (en) | 2002-02-15 | 2008-08-19 | Telefonaktiebolaget L M Ericsson (Publ) | Middleware services layer for platform system for mobile terminals |
US7536181B2 (en) | 2002-02-15 | 2009-05-19 | Telefonaktiebolaget L M Ericsson (Publ) | Platform system for mobile terminals |
-
2001
- 2001-09-14 US US09/951,676 patent/US7043636B2/en not_active Expired - Lifetime
- 2001-09-25 EP EP01980433A patent/EP1325401B1/en not_active Expired - Lifetime
- 2001-09-25 AT AT01980433T patent/ATE355551T1/de not_active IP Right Cessation
- 2001-09-25 DE DE60126968T patent/DE60126968T2/de not_active Expired - Lifetime
- 2001-09-25 WO PCT/EP2001/011042 patent/WO2002027441A1/en active IP Right Grant
- 2001-09-25 MY MYPI20014473A patent/MY127742A/en unknown
- 2001-09-25 CN CNB018162185A patent/CN1210637C/zh not_active Expired - Lifetime
- 2001-09-25 ES ES01980433T patent/ES2278793T3/es not_active Expired - Lifetime
- 2001-09-25 AU AU2002212279A patent/AU2002212279A1/en not_active Abandoned
Also Published As
Publication number | Publication date |
---|---|
US7043636B2 (en) | 2006-05-09 |
EP1325401A1 (en) | 2003-07-09 |
DE60126968D1 (de) | 2007-04-12 |
CN1466710A (zh) | 2004-01-07 |
MY127742A (en) | 2006-12-29 |
AU2002212279A1 (en) | 2002-04-08 |
DE60126968T2 (de) | 2007-07-05 |
EP1325401B1 (en) | 2007-02-28 |
US20020038429A1 (en) | 2002-03-28 |
ATE355551T1 (de) | 2006-03-15 |
WO2002027441A1 (en) | 2002-04-04 |
ES2278793T3 (es) | 2007-08-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1210637C (zh) | 保护静态和动态数据免遭未授权操作的系统 | |
JP4912879B2 (ja) | プロセッサの保護された資源へのアクセスに対するセキュリティ保護方法 | |
CN1276319C (zh) | 一种保护电子装置的方法,保护系统及电子装置 | |
CN102426640B (zh) | 用于产品验证和激活的安全软件产品标识符 | |
US8250373B2 (en) | Authenticating and verifying an authenticable and verifiable module | |
CN103177223B (zh) | 于两装置间保护数据存取的方法及系统 | |
US8341422B2 (en) | Method and apparatus for incremental code signing | |
US8281115B2 (en) | Security method using self-generated encryption key, and security apparatus using the same | |
US7770021B2 (en) | Authenticating software using protected master key | |
US20030140238A1 (en) | Implementation of a secure computing environment by using a secure bootloader, shadow memory, and protected memory | |
US20060107047A1 (en) | Method, device, and system of securely storing data | |
JP2007512787A (ja) | トラステッド・モバイル・プラットフォーム・アーキテクチャ | |
CN102647278B (zh) | 认证下载到闪存的程序的装置及方法 | |
CN1914849A (zh) | 受信移动平台体系结构 | |
US11874928B2 (en) | Security device, electronic device, secure boot management system, method for generating boot image, and method for executing boot chain | |
US20050066354A1 (en) | Circuit for restricting data access | |
CN1949235A (zh) | 税控设备软件版本智能升级加密验证方法 | |
JP2008234079A (ja) | 情報処理装置、ソフトウェア正当性通知方法及び画像処理装置 | |
CN101034428A (zh) | 应用程序保护系统及方法 | |
JP2022124424A5 (zh) | ||
US20210409196A1 (en) | Secure Key Storage Systems Methods And Devices | |
US20210279348A1 (en) | Secure access control processes | |
CN119203172A (zh) | 一种数据加解密方法及其相关装置 | |
CN1689034A (zh) | 定制后能修改其性能的微电路卡 | |
CN119026153A (zh) | 一种固件加密方法、装置、设备及可读存储介质 |
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 | ||
CX01 | Expiry of patent term | ||
CX01 | Expiry of patent term |
Granted publication date: 20050713 |