CN100421046C - 安全运行特许软件的方法和计算装置 - Google Patents

安全运行特许软件的方法和计算装置 Download PDF

Info

Publication number
CN100421046C
CN100421046C CNB2004100824313A CN200410082431A CN100421046C CN 100421046 C CN100421046 C CN 100421046C CN B2004100824313 A CNB2004100824313 A CN B2004100824313A CN 200410082431 A CN200410082431 A CN 200410082431A CN 100421046 C CN100421046 C CN 100421046C
Authority
CN
China
Prior art keywords
protected
public
key cryptography
authorized code
calculation element
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.)
Active
Application number
CNB2004100824313A
Other languages
English (en)
Other versions
CN1655087A (zh
Inventor
理查德·H·伯伊维
威廉姆·埃里克·豪尔
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of CN1655087A publication Critical patent/CN1655087A/zh
Application granted granted Critical
Publication of CN100421046C publication Critical patent/CN100421046C/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/575Secure boot
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/60Digital content management, e.g. content distribution

Abstract

一种用于安全地执行特许码的计算装置,所述计算装置包括用于存储包含原始数字签名的特许码的受保护存储器,以及与受保护存储器进行信号通信的处理器,所述处理器依据公开密钥来检验特许码内所包含的数字签名是否是原始的,从而为执行来自受保护存储器的所述代码做准备,而且,如果原始数字签名通过检验,就转移到受保护存储器内的特许码的复制件,以开始执行。

Description

安全运行特许软件的方法和计算装置
技术领域
本发明一般涉及安全计算装置,所述安全计算装置利用硬件机构和先进加密技术保护其秘密与完整性。
背景技术
在很多情况下,保护计算装置的完整性不受物理篡改是很重要的。例如,如果攻击者能够对生物测定保密装置进行篡改并破坏其功能,则生物测定保密装置就无法提供足够的保密作用。同样,例如,如果攻击者能够破坏机顶盒功能,则有线电视公司的机顶盒也将不能提供足够的保密作用,并使攻击者可以不花钱就看到付费选看电影。
美国联邦政府颁发了与“安全计算”有关的标准。美国国家标准与技术学会颁发的FIPS PUB 140-1号美国联邦信息处理标准出版物,对“加密模块的安全要求”作出了定义。第4安全级提供的是最高级别的安全,并包括在加密模块周围的防护“外罩”,可以保护该外罩不被侵入。如果攻击者企图侵入该安全外罩,这种企图就会被探测到,并且所有关键的安全参数即被零化。正如FIPS PUB 140-1出版物所述:“安全级为4级的装置对于在物理上未受保护的环境下进行操作、入侵者有可能损坏装置时特别有用”。
因此,所需要的是能够利用硬件机构和先进加密技术保护其秘密与完整性的安全计算装置。
发明内容
本发明提供一种用于安全地执行特许码的计算装置,所述计算装置包括:用于存储特许码的受保护存储器,所述特许码包含原始数字签名;以及与所述受保护存储器进行信号通信的处理器,所述处理器通过依据公开密钥来检验代码内验所述特许码内所包含的数字签名是否原始是否是原始的,从而为执行来自受保护存储器的特许码做准备所述代码做准备,而且,如果所述原始数字签名通过检验,就转移到所述受保护存储器内的所述特许码复码的复制件,以开始执行;其中所述受保护存储器内容的完整性用加密方式得到保护。
本发明提供一种用于确保处理器只执行特许码的方法,所述方法包括:将原始数字签名应用于所有特许码;将所述经过签名的特许码存入受保护存储器;存储器中;通过依据对应于所述原始数字签名的公开密钥,对用来签署所述特许签名代码的数字签名进行检验,为,从而为执行来自受保护存储器的特许码做准备所述代码做准备;而且以及,如果所述原始数字签名通过检验,就转移到所述受保护存储器内的所述特许码复码的复制件,以开始执行;其中所述受保护存储器内容的完整性用加密方式得到保护。
本发明提供一种机器可读的程序存储装置,其中切实实际包括包含可由机器执行以实现程序步骤的指令程序,用于确保处理器将只执行特许码,所述程序步骤包括:将原始数字签名应用于所有特许码;将所述经过签名的特许码存入受保护存储器;存储器中;通过依据对应于所述原始数字签名的公开密钥,对用来签署所述特许签名代码的数字签名进行检验,为,从而为执行来自受保护存储器的特许码做准备所述代码做准备;而且以及,如果所述原始数字签名通过检验,就转移到所述受保护存储器内的所述特许码复码的复制件,以开始执行。
现有技术的上述和其它缺点与不足被安全计算装置所克服或减轻,所述安全计算装置可以保护其秘密及其自身的完整性,并能运行所述安全计算装置所有者进行了数字签名的任何软件。
用于安全地执行特许码的计算装置包括用来存储含有原始数字签名的特许码的受保护存储器,以及与受保护存储器进行信号通信的处理器,该处理器依据公开密钥来检验特许码内所包含的数字签名是否是原始的,从而为执行来自受保护存储器的所述代码做准备,而且,如果原始数字签名通过检验,就转移到受保护存储器内的特许码的复制件,以开始执行。
本发明上述和其它方面、特征和优点将通过以下对实施例的说明而变得显而易见,这些说明将参照附图进行。
附图说明
参照以下示例图,本发明将得到更好的理解,其中:
图1是一幅流程图,说明依据本发明原理的安全计算装置的引导过程;
图2是一幅依据本发明原理的安全计算装置的示意图;
图3是一幅示意图,说明依据本发明原理的安全计算装置的加密、解密以及保持数据完整性的过程;
图4是一幅示意图,说明依据本发明原理的安全计算装置的完整性树的数据图;
图5是一幅流程图,说明依据本发明原理的安全计算装置的存储器写过程;
图6是一幅流程图,说明依据本发明原理的安全计算装置的存储器读过程;
图7是一幅流程图,说明依据本发明原理的安全计算装置供选择实施例的修改的引导过程。
具体实施方式
提供了一种可以保护秘密及其自身完整性的安全计算装置。所述安全计算装置还可以运行由其所有者进行了数字签名的任何兼容软件。如此处所定义,经数字签名的代码包括带有数字签名的、含有散列(例如,本技术领域所公知的安全杂凑算法,即“SHA-1”)的代码。可以运行由经授权方数字签名的软件并在执行过程中保护该软件完整性的安全计算装置,将不能运行任何未由经授权方数字签名的软件。
此处所描述的安全计算装置能够利用硬件机构和先进加密技术保护其秘密与完整性。安全计算装置可以运行其所有者所选择的任何软件,而且其所有者可以在任何时候更新安全计算装置上的软件。安全计算装置在软件的整个“寿命期”保护软件的完整性。软件从“装运”到在整个执行期间、直到软件不再需要的全过程都受到保护。这样,攻击者就无法破坏安全计算装置的功能。
安全计算装置的所有者不一定是该装置的“用户”。例如,机顶盒的所有者可能是有线电视公司,而机顶盒的用户则可能是潜在攻击者。在此情况下,例如,安全计算装置可以防止攻击者通过修改该机顶盒的功能做到不花钱就能观看所有付费选看电影。
在应用于个人数字助理(“PDA)”的情况下,安全计算装置可以防止获得PDA物理控制的攻击者访问存储在PDA内的机密信息。安全计算装置还可以防止攻击者通过修改其功能将“特洛伊木马”程序装入其中,从而利用该程序记录密码和其它机密信息并将这些密码和信息邮寄给攻击者。
此处所描述的安全计算装置利用硬件机构和先进加密技术保护其秘密与完整性。该安全计算装置的实现包括该装置内的公开密钥,该公开密钥用于检查数字代码式签名。
如图1所示,用于说明依据本发明原理的安全计算装置的引导过程的流程图一般用参考号100表示。在引导期间,安全计算装置内的只读存储器从标准引导地址读出引导码,在步骤101将该引导码复制到“受保护存储器”,在步骤102检验引导码上的数字签名,在步骤103检查该数字签名是否有效,而且,如果有效,即在步骤104转移到受保护存储器内的代码的复制件。另一方面,如果在步骤103发现数字签名无效,则在步骤105发出出错信号。
此处,受保护存储器可以是计算装置内部的存储器,企图破坏计算装置完整性的攻击者无法访问该存储器。作为选择,如图2所示,受保护存储器可以是计算装置外部的存储器,以线内加密方式进行保护。
现在看图2,依据本发明原理的安全计算装置一般用参考号200表示。安全计算装置200包括与存储器总线214交换信号的处理器210,存储总线214则与存储器216交换信号。处理器210包括线内加密和完整性硬件212。处理器210使用“明文”数据,而存储器216使用“密文”数据。在示范性的本实施例中,存储器216是计算装置外部的存储器,由硬件212利用线内加密方式提供保护。
在本发明的一个实施例中,使用计算装置内的对称密钥对写在芯片之外的信息加密,并在该信息被反向读入时对其进行解密。这种线内加密方法既保护了存储在芯片之外的信息的机密性,也保护了该信息的完整性。
公开密钥可以处在片上ROM(on-chip ROM)内,从而固定用于一项设计的所有复制品,或者处在熔丝内,该熔丝的编程在晶圆处理阶段进行(例如激光刻线型),或在系统装配时进行(例如系统内可编程型)。后一种方式可以使芯片制造厂家在没有用户专用的公开密钥的情况下制造并封装零件,但是这种方式在一些芯片技术中已经不使用了。
解决该问题的一种办法是,包含少量片上激光刻线型熔丝,以识别特定芯片的“所有者编号”。如果芯片还包括制造厂家的公开密钥,则制造厂家的公开密钥可用来验证提供特定所有者编号的证书的有效性。
后面将要讨论的图7描述了可以在这种情况下工作的引导过程。
完整性保护方案保护数据不被修改和不被重放和再定位。数据块的重放,系指用早些时候在该数据块地址有效的值取代该数据块。数据块的“再定位”,系指用在不同地址上都有效的数据块取代该数据块。加密/完整性保护方案可以使用加密算法,例如对于时间和位置敏感的数据加密标准(“DES”)或先进加密标准(“AES”),以保护数据不被重放或再定位。
明文数据块的加密是明文数据、密钥和“白化”值的函数。白化值是白化密钥、数据块“地址”和计数器,即“版本号”的函数,数据块每写一次,“版本号”就提高一个增量。在白化值中使用数据块地址可以对付再定位,而使用版本号则可对付重放。
现在看图3,一般用参考号300表示安全计算装置数据流的加密、解密和数据的完整性。在数据流300的存储器写部分,明文数据一旦被接收,即生成被接收数据的完整性值并存储在功能块310。被接收明文数据也被第一求和块312接收,第一求和块312也接收将与明文数据相加的白化值。求和块312的输出由功能块314接收并加密,功能块314也接收密钥并且,例如,利用AES或DES对数据加密。加密块314的输出由第二求和块316接收,求和块316也接收将与已加密数据相加的白化值。求和块316的输出包括将存储到受保护存储器内的密文数据。
数据的地址由功能块318接收,该功能块318得到被接收地址的版本号。功能块318的输出由伽罗华域(“GF”)乘法块320接收。GF乘法块320也接收白化密钥,从而能产生白化值。
在数据流300的存储器读部分,密文数据从受保护存储器取回并送到第三求和块322。求和块322将取回的密文数据与白化值相加。解密块324接收求和块322的输出,同时也接收密钥,并且利用,例如,AES或DES产生解密输出。解密块324的输出由第四求和块326接收,该求和块326将该输出与白化值相加以产生明文数据。第四求和块326的明文数据输出由功能块328接收,该功能块328验证明文数据的完整性值的有效性,并产生有效/无效标志。
在这种形式的方案中,如图3所示,白化值是伽罗华域中版本号与白化密钥的乘积。在图3所示的方案形式中,白化过程包括数据与白化值的“异或”操作,而且在存储器写的DES或AES加密之前和之后都要对数据进行白化处理,在存储器读的DES或AES解密之前和之后也都要对数据进行白化处理。
只要将数据块写入存储器,也会对完整性值进行计算。完整性值可以是数据块内的所有明文之和(例如“异”)。由于如果要对数据块进行保护,则数据块的整体性值也需要保护,而且由于版本号需要保持和保护,所以特定数据块的<整体性值,版本号>对与其它类似数据块对(例如,临近数据块对)组合,而且对组被写入另一个数据块,反过来,“元数据”块也必须受保护。
如图4所示,安全计算装置的完整性树一般用参考号400表示。范例性完整性树400包括数据块D0、D1、D2、D3、D4和D5。该完整性树还包括元数据块MD0、MD1、MD2、MD3和MD4。例如,元数据块MD0包括全部D0、D1、D2、D3、D4和D5数据块之和及版本。此外,该范例性完整性树还包括较高层次的元数据块412,其中之一包括,例如,全部MD0、MD1和MD2元数据块之和及版本。树根410可直接包括所有较高层次的元数据块412之和及版本,甚至在其它实施例中还可以包括更高层次的元数据块。
这样,在这种形式的方案中,元数据块的<整体性值,版本号>对就和其它临近元数据块的<整体性值,版本号>对组合,并且被写入更高层次的元数据块,该元数据块反过来也被保护。包含来自完整性树及树根的较高层次元数据块的元数据块对整个受保护存储器的完整性提供保护。虽然对完整性树的一个范例性设计实施例进行了说明,但也可以采用其它设计。例如,同时在审理中的名为“随机存取存储器的可并行化验证树”(代理公开号为No.YOR820020483)的专利申请中所描述的完整性树就可以取代此处所描述的完整性树而使用。当然,也可采用将被相关领域内的专业人员所认可的其它完整性树的设计。
完整性树的树根,以及加密和白化密钥都存储在安全计算装置内。此外,元数据完整性树的内容也在安全计算装置内进行更新和检验。这意味着攻击者无法看到受保护存储器的内容。这也意味着安全计算装置可以探测到攻击者可能对受保护存储器内容所做的任何修改,包括任何“重放”或“再定位”攻击。
完整性树实施例400允许进行片外数据存储。来自完整性树和该树仅仅最高层次树根的完整性值和版本号被存储在芯片内并受到物理保护。然而,如果在树根以下有足够的片上存储空间可以用来存储完整性树的较低层次,则其它实施例也可应用。如果所有完整性和版本信息在芯片内不匹配,但是如果有足够的片上存储空间来完整地存储完整性树的这种较低层次,则没有必要建立直至单个最高树根的整个完整性树。例如,如果完整性树的最低层次匹配于芯片上,则没有必要再维持任何更高层次的完整性值。反之,如果完整性树的最低层次不能匹配于芯片上,但是比其高出一个层次的第二层次能匹配于芯片上,则没有必要维持比第二完整性层次更的高层次,因为第二层次将在芯片内受物理保护。
现在看图5,安全计算装置的存储器写过程一般用参考号500表示。过程500在功能块501接收要写的数据,功能块501将数据块写入存储器并将控制传递到功能块502。功能块502对更高层次元数据块内的查和及版本进行更新并将控制传递到判定块503。判定块503确定该更高层次元数据块是否完整性树的树根。如果没有探测到树根,控制就传递回功能块501。另一方面,如果树根被探测到,控制就被传递到“返回”块504。
这样,图5就说明了将数据块写入受保护存储器的有关步骤。数据块在步骤501被写入受保护存储器。在步骤502,该数据块的查和及版本号的更新版本被存入数据块的“元数据”块内。正如步骤503所述,如果该元数据块与完整性树的树根一致,则过程结束于步骤504。另一方面,如果元数据块不是完整性树的树根,则元数据块需要在步骤501写入受保护存储器,而且元数据块的查和及版本号需要在步骤502存入更高层次的元数据块。正如步骤503所述,如果和前面一样,该较高层次元数据块与完整性树的树根一致,则过程结束于步骤504。否则,该元数据块需要写入受保护存储器,而且过程要继续进行下去,直至较高层次元数据块与完整性树的树根一致,此时过程结束于步骤504。在此情况下,所有写入受保护存储器的数据块都按照图3所示的加密和完整性方案得到保护。
现在看图6,安全计算装置的存储器读的过程一般用参考号600表示。过程600包括功能块601,功能块601读出存储器数据块,并将控制传递到判定块602。判定块602确定该数据块是否有效,如果无效,则将控制传递到功能块603,以辨别完整性缺陷,另一方面,如果该数据块有效,判定块602就将控制传递到第二判定块604。第二判定块604确定该存储块是否树叶数据块,如果不是树叶数据块,就将控制传递回功能块601。另一方面,如果数据块是树叶数据块,则判定块604将控制传递到“返回”块605,从而送回数据块。
这样,图6就说明了从受保护存储器读出数据块的有关步骤。在步骤601,处在从完整性树的树根通往所需数据块路径上的第一数据块就从受保护存储器中读出。在步骤602,利用来自完整性树树根的查和及版本信息检验了该数据块的有效性。如果完整性检验未通过,就在步骤603发出完整性无效情况的信号。另一方面,如果该数据块被确定为有效,则在步骤604进行检验,以确定该数据块是否所需数据块。如果是所需数据块,数据就在步骤605返回用户。如果不是所需数据块,处在从树根通往所需数据块路径上的下一个数据块就在步骤601被读出。像前面一样,在步骤602上对该数据块的完整性进行检验。而且,像前面一样,如果完整性检验未通过,就在步骤603发出完整性无效情况的信号。像前面一样,如果该数据块被确定为有效,则在步骤604进行检验,以确定该数据块是否所需数据块。如果是所需数据块,数据就在步骤605返回用户。如果不是所需数据块,处在从树根通往所需数据块路径上的下一个数据块就被读出,依此类推,这一过程一直持续到或者在完整性检验未通过的情况下在步骤603发出完整性无效情况的信号,或者到达了所需的数据块而且数据在步骤605上返回了用户。在此情况下,所有从受保护存储器中读出的数据块都被解密并且具有如图3所示的经检验的完整性。
此外,处在从完整性树的树根通往所需数据块路径上的数据块可以通过高速缓存操作提高性能。利用供选择实施例的经修改完整性树,例如,同时正在审理的名为“随机存取存储器的可并行化验证树”(代理公开号为No.YOR820020483)的专利申请所描述的完整性树,处在从完整性树的树根通往所需数据块路径上的数据块的完整性检验可以并行进行,从而进一步提高性能。
如图7所示,供选择实施例的经修改引导过程一般用参考号700表示。过程700包括功能块701,该功能块701将包含所有者公开密钥的证书读入受保护存储器,并将控制传递到功能块702。功能块702用驻留在处理器内的生产厂家公开密钥验证该证书的有效性,并将控制传递到功能块703。功能块703将引导码读入受保护存储器,并将控制传递到功能块704。功能块704用所有者的公开密钥检验引导码的数字签名,并将控制传递到判定块705。判定块705确定该数字签名是否有效,如果有效,就将控制传递到枝干块706。枝干块706转移到受保护存储器内代码的复制件。另一方面,如果判定块705确定数字签名无效,即将控制传递到功能块707以发出出错信号。
这样,正如在图3之后所作的说明,图7中供选择实施例的引导过程700可以使用,例如,少量的片上激光刻线型熔丝来识别特定芯片的“所有者编号”。如果该芯片还包含芯片厂家的公开密钥,则厂家的公开密钥可以用来验证提供特定所有者编号的公开密钥的证书的有效性。
虽然此处已参照附图对说明性实施例进行了描述,但应该认识到,本发明并不局限于这些具体的实施例,在不违背本发明的范围和精神的前提下,相关领域的一般技术人员都可以做出变更和修改。所有这些变更和修改都应有意识地包含在所附权利要求所规定的本发明范围之内。

Claims (19)

1. 一种用于安全地执行特许码的计算装置,所述计算装置包括:
用于存储特许码的受保护存储器,所述特许码包含原始数字签名;以及
与所述受保护存储器进行信号通信的处理器,所述处理器通过依据公开密钥来检验特许码内所包含的数字签名是否是原始的,从而为执行来自受保护存储器的所述特许码做准备,而且,如果所述原始数字签名通过检验,就转移到所述受保护存储器内的所述特许码的复制件,以开始执行;
其中所述受保护存储器内容的完整性用加密方式得到保护。
2. 根据权利要求1的计算装置,其中所述受保护存储器用密码加以保护。
3. 根据权利要求1的计算装置,其中所述受保护存储器在物理上得到保护。
4. 根据权利要求1的计算装置,其中所述公开密钥存储在所述受保护存储器内。
5. 根据权利要求1的计算装置,其中所述特许码的完整性和所述特许码的保密性两者中至少有一个在运行时受到保护。
6. 根据权利要求5的计算装置,其中所述特许码的完整性在运行时用对称密钥加密的方式得到保护。
7. 根据权利要求5的计算装置,其中所述特许码的保密性在运行时用对称密钥加密的方式得到保护。
8. 根据权利要求1的计算装置,其中:
受保护存储器用对应于所有者公开密钥的原始数字签名存储代码;并且
处理器依据驻留在处理器内的厂家公开密钥检验所有者公开密钥,然后依据所有者公开密钥检验原始数字签名。
9. 根据权利要求8的计算装置,所述计算装置还包括:
阅读装置,用于阅读包含所有者公开密钥的证书;
验证装置,用于用厂家公开密钥验证证书的有效性;
匹配装置,用于发现与处理器内的所有者编号匹配的证书内的所有者公开密钥;以及
检验装置,用于利用匹配的所有者公开密钥来检验特许码。
10. 一种用于确保处理器只执行特许码的方法,所述方法包括:
将原始数字签名应用于所有特许码;
将所述经过签名的特许码存入受保护存储器中;
通过依据对应于所述原始数字签名的公开密钥,对用来签名特许码的数字签名进行检验,从而为执行来自受保护存储器的所述特许码做准备;以及,
如果所述原始数字签名通过检验,就转移到所述受保护存储器内的所述特许码的复制件,以开始执行;
其中所述受保护存储器内容的完整性用加密方式得到保护。
11. 根据权利要求10的方法,其中所述受保护存储器用密码加以保护。
12. 根据权利要求10的方法,其中所述受保护存储器在物理上得到保护。
13. 根据权利要求10的方法,其中所述公开密钥存储在所述受保护存储器内。
14. 根据权利要求10的方法,其中所述特许码的完整性在运行时受到保护。
15. 根据权利要求14的方法,其中所述特许码的完整性用对称密钥加密的方式得到保护。
16. 根据权利要求10的方法,其中所述特许码的保密性在运行时受到保护。
17. 根据权利要求16的方法,其中所述特许码的保密性在运行时用对称密钥加密的方式得到保护。
18. 根据权利要求10的方法,还包括:
用对应于所有者公开密钥的原始数字签名在受保护存储器中存储代码;以及
依据驻留在处理器内的厂家公开密钥检验所有者公开密钥,然后依据所有者公开密钥检验原始数字签名。
19. 根据权利要求18的方法,还包括:
阅读包含所有者公开密钥的证书;
用厂家公开密钥验证证书的有效性;
发现与处理器内的所有者编号匹配的证书内的所有者公开密钥;以及
利用匹配的所有者公开密钥来检验特许码。
CNB2004100824313A 2003-10-01 2004-09-21 安全运行特许软件的方法和计算装置 Active CN100421046C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/677,933 2003-10-01
US10/677,933 US8332652B2 (en) 2003-10-01 2003-10-01 Computing device that securely runs authorized software

Publications (2)

Publication Number Publication Date
CN1655087A CN1655087A (zh) 2005-08-17
CN100421046C true CN100421046C (zh) 2008-09-24

Family

ID=34393834

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2004100824313A Active CN100421046C (zh) 2003-10-01 2004-09-21 安全运行特许软件的方法和计算装置

Country Status (2)

Country Link
US (1) US8332652B2 (zh)
CN (1) CN100421046C (zh)

Families Citing this family (51)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2005076137A1 (en) * 2004-02-05 2005-08-18 Research In Motion Limited Memory controller interface
US8667580B2 (en) * 2004-11-15 2014-03-04 Intel Corporation Secure boot scheme from external memory using internal memory
US20060236122A1 (en) * 2005-04-15 2006-10-19 Microsoft Corporation Secure boot
GB0601849D0 (en) * 2006-01-30 2006-03-08 Ttp Communications Ltd Method of maintaining software integrity
EP1881404A1 (fr) * 2006-07-20 2008-01-23 Gemplus Procédé de protection dynamique des données lors de l'exécution d'un code logiciel en langage intermédiaire dans un appareil numérique
US7987351B2 (en) * 2006-10-06 2011-07-26 Broadcom Corporation Method and system for enhanced boot protection
FR2910144A1 (fr) * 2006-12-18 2008-06-20 St Microelectronics Sa Procede et dispositif de detection errones au cours de l'execution d'un programme.
ATE456837T1 (de) * 2007-06-29 2010-02-15 Ericsson Telefon Ab L M Verschleierung von ausführungsspuren eines computerprogrammcodes
US8006095B2 (en) * 2007-08-31 2011-08-23 Standard Microsystems Corporation Configurable signature for authenticating data or program code
US8069317B2 (en) * 2007-10-12 2011-11-29 International Business Machines Corporation Providing and utilizing high performance block storage metadata
US9141477B2 (en) * 2007-10-12 2015-09-22 International Business Machines Corporation Data protection for variable length records by utilizing high performance block storage metadata
US8375219B2 (en) * 2007-10-24 2013-02-12 Microsoft Corporation Program and operation verification
IL187039A0 (en) * 2007-10-30 2008-02-09 Sandisk Il Ltd Secure overlay manager protection
IL187042A0 (en) * 2007-10-30 2008-02-09 Sandisk Il Ltd Write failure protection for hierarchical integrity schemes
DE102008011925B4 (de) * 2008-02-29 2018-03-15 Globalfoundries Inc. Sicheres Initialisieren von Computersystemen
US8230317B2 (en) * 2008-04-09 2012-07-24 International Business Machines Corporation Data protection method for variable length records by utilizing high performance block storage metadata
DE102008021567B4 (de) * 2008-04-30 2018-03-22 Globalfoundries Inc. Computersystem mit sicherem Hochlaufmechanismus auf der Grundlage einer Verschlüsselung mit symmetrischem Schlüssel
US8572692B2 (en) * 2008-06-30 2013-10-29 Intel Corporation Method and system for a platform-based trust verifying service for multi-party verification
US10255463B2 (en) 2008-11-17 2019-04-09 International Business Machines Corporation Secure computer architecture
US8190832B2 (en) * 2009-01-29 2012-05-29 International Business Machines Corporation Data storage performance enhancement through a write activity level metric recorded in high performance block storage metadata
US9058491B1 (en) 2009-03-26 2015-06-16 Micron Technology, Inc. Enabling a secure boot from non-volatile memory
US9588803B2 (en) 2009-05-11 2017-03-07 Microsoft Technology Licensing, Llc Executing native-code applications in a browser
US8954752B2 (en) * 2011-02-23 2015-02-10 International Business Machines Corporation Building and distributing secure object software
US9954875B2 (en) 2009-06-26 2018-04-24 International Business Machines Corporation Protecting from unintentional malware download
US8578175B2 (en) * 2011-02-23 2013-11-05 International Business Machines Corporation Secure object having protected region, integrity tree, and unprotected region
US9298894B2 (en) 2009-06-26 2016-03-29 International Business Machines Corporation Cache structure for a computer system providing support for secure objects
US9846789B2 (en) 2011-09-06 2017-12-19 International Business Machines Corporation Protecting application programs from malicious software or malware
US8819446B2 (en) 2009-06-26 2014-08-26 International Business Machines Corporation Support for secure objects in a computer system
FR2955189B1 (fr) * 2009-11-12 2012-03-09 St Microelectronics Rousset Procede securise de traitement d'un contenu memorise au sein d'un composant, et composant correspondant
US9336410B2 (en) 2009-12-15 2016-05-10 Micron Technology, Inc. Nonvolatile memory internal signature generation
US9864853B2 (en) 2011-02-23 2018-01-09 International Business Machines Corporation Enhanced security mechanism for authentication of users of a system
US9331848B1 (en) * 2011-04-29 2016-05-03 Altera Corporation Differential power analysis resistant encryption and decryption functions
US9495183B2 (en) 2011-05-16 2016-11-15 Microsoft Technology Licensing, Llc Instruction set emulation for guest operating systems
US20130061328A1 (en) * 2011-09-06 2013-03-07 Broadcom Corporation Integrity checking system
US11620719B2 (en) 2011-09-12 2023-04-04 Microsoft Technology Licensing, Llc Identifying unseen content of interest
US9413538B2 (en) * 2011-12-12 2016-08-09 Microsoft Technology Licensing, Llc Cryptographic certification of secure hosted execution environments
US9235710B2 (en) 2013-05-23 2016-01-12 Cisco Technology, Inc. Out of band management of basic input/output system secure boot variables
US9223965B2 (en) 2013-12-10 2015-12-29 International Business Machines Corporation Secure generation and management of a virtual card on a mobile device
US9235692B2 (en) 2013-12-13 2016-01-12 International Business Machines Corporation Secure application debugging
US9251330B2 (en) 2014-04-09 2016-02-02 International Business Machines Corporation Secure management of a smart card
US9524249B2 (en) * 2014-12-23 2016-12-20 Intel Corporation Memory encryption engine integration
FR3043228B1 (fr) 2015-11-03 2018-03-30 Proton World International N.V. Demarrage controle d'un circuit electronique
FR3043229B1 (fr) * 2015-11-03 2018-03-30 Proton World International N.V. Demarrage securise d'un circuit electronique
CN108667594B (zh) * 2017-03-27 2022-10-11 格尔软件股份有限公司 一种基于pki公钥算法的软件程序模块完整性检测方法
US10380373B2 (en) * 2017-09-07 2019-08-13 Dataunitor AS Network, method and computer program product for organizing and processing data
US11068607B2 (en) 2018-03-10 2021-07-20 International Business Machines Corporation Protecting cognitive code and client data in a public cloud via deployment of data and executables into a secure partition with persistent data
US10685106B2 (en) 2018-03-10 2020-06-16 International Business Machines Corporation Protecting cognitive code and client data in a public cloud via deployment of data and executables into a stateless secure partition
CN113728320A (zh) * 2019-07-29 2021-11-30 慧与发展有限责任合伙企业 用于产品设备的接口控制器
FR3111441B1 (fr) 2020-06-10 2022-08-05 Proton World Int Nv Démarrage sécurisé d'un circuit électronique
TWI772926B (zh) * 2020-10-19 2022-08-01 財團法人資訊工業策進會 日誌處理裝置及其日誌處理方法
US20220207154A1 (en) * 2020-12-26 2022-06-30 Intel Corporation Dynamic mitigation of speculation vulnerabilities

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5481613A (en) * 1994-04-15 1996-01-02 Northern Telecom Limited Computer network cryptographic key distribution system
US6185685B1 (en) * 1997-12-11 2001-02-06 International Business Machines Corporation Security method and system for persistent storage and communications on computer network systems and computer network systems employing the same
US6397331B1 (en) * 1997-09-16 2002-05-28 Safenet, Inc. Method for expanding secure kernel program memory

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5778070A (en) * 1996-06-28 1998-07-07 Intel Corporation Method and apparatus for protecting flash memory
US20010050990A1 (en) * 1997-02-19 2001-12-13 Frank Wells Sudia Method for initiating a stream-oriented encrypted communication
US7194619B2 (en) * 2002-03-26 2007-03-20 International Business Machines Corporation Remotely booting devices in a dense server environment without manually installing authentication parameters on the devices to be booted

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5481613A (en) * 1994-04-15 1996-01-02 Northern Telecom Limited Computer network cryptographic key distribution system
US6397331B1 (en) * 1997-09-16 2002-05-28 Safenet, Inc. Method for expanding secure kernel program memory
US6185685B1 (en) * 1997-12-11 2001-02-06 International Business Machines Corporation Security method and system for persistent storage and communications on computer network systems and computer network systems employing the same

Also Published As

Publication number Publication date
US8332652B2 (en) 2012-12-11
CN1655087A (zh) 2005-08-17
US20050076226A1 (en) 2005-04-07

Similar Documents

Publication Publication Date Title
CN100421046C (zh) 安全运行特许软件的方法和计算装置
US8213612B2 (en) Secure software download
CN101256613B (zh) 无需制造者和用户知道彼此的加密信息的安全处理器系统
US9519616B2 (en) Secure archive
Elbaz et al. Tec-tree: A low-cost, parallelizable tree for efficient defense against memory replay attacks
CN102419804B (zh) 具有冗余安全性的可靠的软件产品验证和激活
US20040268339A1 (en) Firmware validation
JP2001513929A (ja) 電子的なデータ処理装置およびシステム
CN101006407A (zh) 安全模式控制的存储器
US20080010686A1 (en) Confidential Information Processing Device
CN102855161B (zh) 用于安全微控制器的外部存储器的数据交织方案
US8774407B2 (en) System and method for executing encrypted binaries in a cryptographic processor
EP2228988B1 (en) Circuit for restricting data access
US20100077230A1 (en) Protecting a programmable memory against unauthorized modification
US20080000971A1 (en) Method for customizing customer identifier
US8856520B2 (en) Secure key management
CN1327356C (zh) 具有控制读取之微处理器的计算机可读介质和与该介质通信的计算机
WO2019142307A1 (ja) 半導体装置、更新データ提供方法、更新データ受取方法およびプログラム
CN101799789B (zh) 芯片及其存储器数据保护装置与其保护方法
CN102708069A (zh) 安卓系统中内存数据的保护方法
US6882730B1 (en) Method for secure distribution and configuration of asymmetric keying material into semiconductor devices
CN103378966A (zh) 安全动态片上密钥编程
CN114629633A (zh) 密钥块增强封装
CN112165396A (zh) 一种安全固件更新的方法
CN117216813B (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