CN108694322B - 用于对计算机化系统进行初始化的方法及计算机化系统 - Google Patents

用于对计算机化系统进行初始化的方法及计算机化系统 Download PDF

Info

Publication number
CN108694322B
CN108694322B CN201810033497.5A CN201810033497A CN108694322B CN 108694322 B CN108694322 B CN 108694322B CN 201810033497 A CN201810033497 A CN 201810033497A CN 108694322 B CN108694322 B CN 108694322B
Authority
CN
China
Prior art keywords
key
boot
index
public
key index
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
CN201810033497.5A
Other languages
English (en)
Other versions
CN108694322A (zh
Inventor
贾斯伯·史班杰斯
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.)
Omron Corp
Original Assignee
Omron 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 Omron Corp filed Critical Omron Corp
Publication of CN108694322A publication Critical patent/CN108694322A/zh
Application granted granted Critical
Publication of CN108694322B publication Critical patent/CN108694322B/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/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/572Secure firmware programming, e.g. of basic input output system [BIOS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • 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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/0825Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using asymmetric-key encryption or public key infrastructure [PKI], e.g. key signature or public key certificates
    • 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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0894Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
    • H04L9/0897Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage involving additional devices, e.g. trusted platform module [TPM], smartcard or USB

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Stored Programmes (AREA)
  • Storage Device Security (AREA)

Abstract

一种用于通过执行引导脚本(5)来对计算机化系统(1)进行初始化的方法及计算机化系统,所述引导脚本(5)具有相关联的私有安全密钥(Xi),其中所述计算机化系统(1)包括第一安全存储装置(2)及第二安全存储装置(3),所述第一安全存储装置(2)用于存储各自被指派有公共密钥索引(k1至kN)的多个公共密钥(Y1至YN),所述第二安全存储装置(3)用于存储当前密钥索引(k),其中只有在从所述多个公共密钥(Y1至YN)选择的公共密钥(Yi)与所述私有安全密钥(Xi)唯一地相关以与所述私有安全密钥(Xi)形成唯一密钥对且具有与所述当前密钥索引(k)呈预定关系的引导密钥索引(ki)时,所述引导脚本(5)才被执行。

Description

用于对计算机化系统进行初始化的方法及计算机化系统
技术领域
本发明涉及一种用于对计算机化系统进行初始化的方法及一种计算机化系统。
背景技术
需要安全地执行对例如计算机等系统的初始化(initializing)或引导(booting),以保证系统的安全性。在启动时,系统通常执行引导加载程序来加载计算机的操作系统。举例来说,可使用可信平台模块(Trusted Platform Module,TPM)来实作安全引导。
发明内容
本发明的一个目标是提供一种经改善且更安全的用于对计算机化系统进行初始化的方法。本发明的另一目标是提供一种经改善且更安全的计算机化系统。
因此,提供一种用于通过执行引导脚本来对计算机化系统进行初始化的方法,所述引导脚本具有相关联的私有安全密钥Xi,其中所述计算机化系统包括第一安全存储装置及第二安全存储装置,所述第一安全存储装置用于存储各自被指派有公共密钥索引k1-kN的多个公共密钥Y1--YN,所述第二安全存储装置用于存储当前密钥索引k。只有在从所述多个公共密钥Y1-YN选择的公共密钥Yi与所述私有安全密钥Xi唯一地相关以与所述私有安全密钥Xi形成唯一密钥对且具有与所述当前密钥索引k呈预定关系的引导密钥索引ki时,所述引导脚本才被执行。
根据实施例,提供一种被实作成执行上文及下文所述的方法的计算机化系统。所述计算机化系统包括:
第一安全存储装置,用于存储各自被指派有公共密钥索引k1-kN的多个公共密钥Y1-YN
第二安全存储装置,用于存储当前密钥索引k;
导脚本存储单元,用于存储引导脚本,所述引导脚本具有相关联的私有安全密钥Xi;以及
引导脚本执行单元,用于只有在从所述多个公共密钥Y1-YN选择的公共密钥Yi与所述私有安全密钥Xi唯一地相关以与所述私有安全密钥Xi形成唯一密钥对且具有与所述当前密钥索引k呈预定关系的引导密钥索引ki时才执行所述引导脚本。
所述计算机化系统可为包括硬件及软件的系统,例如计算机,具体来说,个人计算机、嵌入式系统、工业用计算机、或服务器。初始化可以是为使计算机化系统准备好供使用而有必要进行的引导过程。初始化可包括执行引导脚本。引导脚本(包括其私有安全密钥Xi)可由计算机化系统的制造商创建,并存储在计算机化系统的引导脚本存储单元中。
与引导脚本相关联的私有安全密钥Xi尤其不能由计算机化系统检索。私有安全密钥Xi可为引导脚本的签名,在引导脚本可被执行之前,需要使引导脚本生效或对引导脚本进行确认。另外,私有安全密钥Xi可为密码密钥。例如,引导脚本和/或私有安全密钥Xi可由计算机化系统的制造商修改。
在引导脚本被执行之前,需要通过唯一公共密钥来成功地存取引导脚本、将引导脚本解密、使引导脚本生效或打开引导脚本,而所述唯一公共密钥与私有安全密钥Xi唯一地相关以与私有安全密钥Xi形成唯一密钥对。如果使用的是与所述唯一公共密钥不同的密钥,则引导脚本无法被成功地存取、解密、生效或打开。
根据另一实施例,第一安全存储装置是可信平台模块、微控制器、或现场可编程门阵列。第一安全存储装置中存储有所述多个公共密钥Y1-YN,其中每一公共密钥被指派有公共密钥索引k1-kN。公共密钥Y1-YN可沿数个第一安全存储装置分布,以提高计算机化系统的复杂性且防止计算机化系统受到攻击。
第一安全存储装置和/或第二安全存储装置可各自包括数个存储器构件。举例来说,可以设想出用于存储密钥和/或密钥索引的分布式存储器结构。根据替代实施例,第一安全存储装置及第二安全存储装置被集成为一个存储器构件,例如可信平台模块、只读存储器(Read Only Memory,ROM)、硬磁盘驱动器、快闪存储器装置等。应理解,例如,第一安全存储装置及第二安全存储装置可为一个单一存储器装置的一部分。在后一种情况中,可以参考具有用于存储公共密钥的区段及用于存储当前密钥索引的区段的安全存储器装置。
密钥索引k1-kN可为整数。密钥索引可为公共密钥Y1-YN的标签或地址。如上文所定义,公共密钥Y1-YN中的一者可为与私有安全密钥Xi唯一地相关的公共密钥Yi。在第一安全存储装置中所存储的其余公共密钥可具有与和私有安全密钥Xi唯一地相关的公共密钥Yi相同的格式,但具有不同的内容。
当前密钥索引k可为整数。具体来说,当前密钥索引k具有与公共密钥Y1-YN的密钥索引k1-kN相同的格式。当前密钥索引k也可与公共密钥Y1-YN的密钥索引k1-kN中的一者相同。存储有当前密钥索引k的第二安全存储装置可为随机存取存储器(Random AccessMemory,RAM)、硬磁盘等,只要其将通过为此项技术领域所已知的方法(例如加密、验证等)受到安全保护即可。具体来说,当前密钥索引k可存储在快闪存储器中。
引导脚本的执行存在两个必要条件。首先,从所述多个公共密钥Y1-YN选择的公共密钥Yi中的一者必须与私有安全密钥Xi唯一地相关,以与私有安全密钥Xi形成唯一密钥对。此外,所述唯一公共密钥Yi必须具有与当前密钥索引k呈预定关系的引导密钥索引ki
所述预定关系可为数学关系。举例来说,如果引导密钥索引是数值,则所述预定关系可为:引导密钥索引ki是当前密钥索引k的倍数,引导密钥索引ki大于、小于或等于当前密钥索引k,引导密钥索引ki落在当前密钥索引k的某一范围内,引导密钥索引ki与当前密钥索引k之和是预定数值,等等。基于所述预定关系,当前密钥索引k可被视为对引导密钥索引ki的容许值进行界定的黑白名单。
由于引导脚本的执行需要符合上文所述的两个必要条件,因而对计算机化系统的初始化或引导是以安全的方式执行。如此一来,提供了一种经改善的用于对计算机化系统进行初始化的方法及一种经改善的计算机化系统。对于用户或客户来说,这提供了使关键组件不受危害的保证。
此外,以上方法是不需要使用新的组件的低成本解决方案。而是,可仅使用例如第一安全存储单元、第二安全存储单元、引导脚本存储单元及引导脚本执行单元等标准组件来执行以上方法。
根据另一实施例,所述方法包括:
从第一安全存储装置检索所述多个公共密钥Y1-YN中的一者,并检验所检索到的公共密钥是否与私有安全密钥Xi形成唯一密钥对;
如果所检索到的公共密钥与私有安全密钥Xi形成唯一密钥对,则获得所检索到的公共密钥的密钥索引来作为引导密钥索引;
将引导密钥索引与当前密钥索引k进行比较;
只有在确定出引导密钥索引与当前密钥索引k符合预定关系时,才执行引导脚本。
根据另一实施例,针对所述多个公共密钥Y1-YN中的每一公共密钥实施从第一安全存储装置检索所述多个公共密钥Y1-YN中的一者并检验所检索到的公共密钥是否与私有安全密钥Xi形成唯一密钥对的步骤,直至确定出与私有安全密钥Xi形成唯一密钥对的公共密钥Yi为止。
如果从第一安全存储装置检索到的第一公共密钥未与私有安全密钥Xi形成唯一密钥对,则检索另一公共密钥并检验此另一公共密钥是否与私有安全密钥Xi形成唯一密钥对。逐一公共密钥地对此进行重复,直至确定出与私有安全密钥Xi形成唯一密钥对的公共密钥Yi为止。
根据另一实施例,所述多个公共密钥Y1-YN是根据预定顺序被逐一地检索。换句话说,所述预定顺序可指示检索公共密钥Y1至YN的次序。举例来说,所述预定顺序可指示检索次序是Y1、Y2、Y3…YN。此外,所述预定顺序可根据密钥索引k1-kN来表达。举例来说,所述公共密钥是以密钥索引k1-kN的递增次序被依序检索。
根据另一实施例,所述方法进一步包括:
如果确定出公共密钥Y1-YN中的任一者均未与私有安全密钥Xi形成唯一密钥对,则中断对计算机化系统的初始化。
具体来说,如果公共密钥Y1-YN中的任一者均未与私有安全密钥Xi形成唯一密钥对,则引导脚本无法被执行。举例来说,这对应于其中引导脚本和/或其私有安全密钥Xi已例如被恶意用户或黑客伪造的情况。此外,这可对应于其中旨在使用除存储在第一安全存储单元中的公共密钥索引之外的公共密钥索引来使引导脚本生效的情况,或对应于其中第一安全存储单元被黑客攻击的情况。
如果公共密钥Y1-YN中的任一者均未与私有安全密钥Xi形成唯一密钥对,则计算机化系统的第一安全存储单元可缺少与私有安全密钥Xi形成唯一密钥对的公共密钥Yi,且出于安全原因,计算机化系统不被初始化。因此,所述用于对计算机化系统进行初始化的方法仅容许对计算机化系统进行安全初始化。由此,计算机化系统的整体安全性得以提高。对计算机化系统的攻击(具体来说,冷引导攻击、固件攻击、及基本输入/输出系统(BasicInput/Output System,BIOS)键盘缓冲区攻击)可得以避免。
根据另一实施例,所述方法进一步包括:
如果确定出公共密钥Y1-YN中的任一者均未与私有安全密钥Xi形成唯一密钥对,则发布报警信号。
可向计算机化系统的用户发布所述报警信号,以指示公共密钥Y1至YN中的任一者均未与私有安全密钥Xi形成唯一密钥对,从而向用户告知计算机化系统可能受到攻击。此外,可向外部服务器发送所述报警信号。由此,计算机化系统的安全性可进一步得以提高。
根据另一实施例,只有在引导密钥索引ki等于或大于当前密钥索引k时,引导脚本才被执行。
具体来说,引导密钥索引ki与当前密钥索引k满足预定关系,根据此预定关系,只有在引导密钥索引ki等于或大于当前密钥索引k时,引导脚本才被执行。当前密钥索引k可被视为黑白名单。相关联的引导密钥索引是在对应黑名单中被识别出的引导脚本不予以执行。具体来说,等于或大于当前密钥索引k的所有引导索引值是白名单的一部分,对于这些引导索引值,容许对引导脚本的执行。另一方面,严格小于当前密钥索引k的所有引导索引值可属于黑名单,对于这些引导索引值,不容许对引导脚本的执行。
在实施例中,所述方法包括:如果引导密钥索引对应于黑名单值中的任一者,则由所述黑名单值形成的黑名单指示对引导脚本的执行将被阻止。作为另一选择或另外,如果当前密钥索引对应于所述黑名单值中的任一者,则对引导脚本的执行被阻止。
根据另一实施例,所述方法进一步包括:
如果确定出引导密钥索引ki与当前密钥索引k未满足预定关系,则中断对计算机化系统的初始化。
具体来说,如果引导密钥索引ki与当前密钥索引k未满足预定关系,则引导脚本无法被执行。举例来说,这会在恶意黑客已修改存储在第一安全存储装置中的公共密钥Y1-YN或者已按不与预定顺序对应的次序检索公共密钥Y1-YN时发生。
如果引导密钥索引ki与当前密钥索引k未满足预定关系,则出于安全原因,计算机化系统可不被初始化。因此,所述用于对计算机化系统进行初始化的方法仅容许对计算机化系统进行安全初始化。此外,可向外部服务器发送报警信号。由此,计算机化系统的整体安全性得以提高,且对计算机化系统的攻击可得以避免。
根据另一实施例,所述方法进一步包括:
如果确定出引导密钥索引与当前密钥索引未满足预定关系,则发布报警信号。
可向计算机化系统的用户发布所述报警信号,以指示引导密钥索引与当前密钥索引未满足预定关系,从而向用户告知计算机化系统可能受到攻击。由此,计算机化系统的安全性可进一步得以提高。
根据另一实施例,所述方法进一步包括:
如果确定出引导密钥索引ki处于预定义范围内,则将当前密钥索引k改变成引导密钥索引ki
由此,当前密钥索引k的值可被改变成引导密钥索引ki的值。举例来说,如果当前密钥索引k由于攻击风险提高而变得不合需要,则系统制造商可决定通过固件更新来更新所述当前密钥索引k。这可通过对引导脚本进行更新、具体来说通过给引导脚本指派新的相关联私有安全密钥Xi来执行。所述新的相关联私有安全密钥Xi具有与其唯一地相关的公共密钥Yi,公共密钥Yi具有引导密钥索引ki。举例来说,如果引导密钥索引ki严格大于当前密钥索引k,则当前密钥索引k被改变、修改或更新成引导密钥索引ki。由此,可动态地执行对当前密钥索引k的更新。初始/先前的当前密钥索引可被自动地列入黑名单。
在已将当前密钥索引k改变成引导密钥索引ki之后,只有在引导密钥索引ki与改变后/更新后的当前密钥索引满足预定关系时,才能执行对计算机化系统的后续初始化。由此,用旧的私有安全密钥Xi签名或加密的引导脚本不能被执行,具体来说将被列入黑名单。
在实施例中,所述方法包括以下步骤中的至少一者:
在执行引导脚本之后,将当前密钥索引的值添加到黑名单;
如果引导密钥索引与当前密钥索引未符合预定关系,则将当前密钥索引的值添加到黑名单;以和/或者
如果所检索到的公共密钥未与私有安全密钥形成唯一密钥对,则将当前密钥索引的值添加到黑名单。
有利地,可通过由系统制造商执行的固件更新来容易地改变/更新当前密钥索引,而不需要使计算机化系统的用户执行任何漫长的更新和/或昂贵的修复。
根据另一实施例,私有安全密钥Xi与公共密钥Yi是密码密钥,所述密码密钥进行交互作用以使得只有使用公共密钥Yi才能将用私有安全密钥Xi加密的引导脚本解密。
在本实施例中,私有安全密钥Xi与公共密钥Yi具体来说是同时产生以形成密码密钥对。如果使用的是与公共密钥Yi不同的密钥,则引导脚本无法被解密。
举例来说,系统制造商可产生多个密码密钥对,具体来说,以使得每一密钥对包括公共密钥Y1-YN中的一者。系统制造商可将所有所产生的公共密钥Y1-YN存储在第一安全存储装置中,用私有密钥中的一者对引导脚本进行签名/加密,并由自身安全地保管至少所有其余的私有密钥。
根据另一实施例,私有安全密钥Xi是引导脚本的签名,所述签名与公共密钥Yi进行交互作用以使得只有使用公共密钥Yi才能使引导脚本生效。如果使用的是与公共密钥Yi不同的密钥,则引导脚本无法被解密。
根据另一方面,本发明涉及一种计算机程序产品,所述计算机程序产品包括当在至少一个计算机上运行时用于执行上文及下文所述的用于对计算机化系统进行初始化的方法的程序代码。所述程序代码可为引导加载程序的一部分,所述引导加载程序在计算机化系统的初始化期间加载计算机化系统的操作系统。
计算机程序产品(例如计算机程序构件)可被实施为存储卡、通用串行总线棒(USBstick)、光盘只读存储器(Compact Disc Read Only Memory,CD-ROM)、数字视盘(DigitalVideo Disk,DVD),或者可被实施为能够从网络中的服务器下载的文件。举例来说,可通过从无线通信网络传送包含所述计算机程序产品的文件来提供此种文件。
参照用于对计算机化系统进行初始化的方法所述的实施例及特征在加以必要变更后也适用于本文中所述的计算机化系统。
用于对计算机化系统进行初始化的方法的及计算机化系统的其他可能实施方案或替代解决方案也囊括上文或下文关于各实施例所述的特征的组合-本文中未明确提及这些组合。所属领域中的技术人员也可对本发明的最基本形式添加个别或单独的方面及特征。
附图说明
图1示出根据实施例的计算机化系统。
图2示出根据实施例用于对计算机化系统进行初始化的方法。
图3示出根据实施例用于确定唯一密钥对的方法。
图4示出根据实施例用于将引导密钥索引与当前密钥索引进行比较的方法。
[符号的说明]
1:计算机化系统/计算机
2:第一安全存储装置/可信平台模块/存储装置
3:第二安全存储装置/只读存储器/存储装置
4:引导脚本存储单元/存储装置
5:引导脚本
6:引导脚本执行单元/中央处理器
8:内部总线
k:当前密钥索引
k1、k2、k4、k5、k6:公共密钥索引/密钥索引
k3:公共密钥索引/密钥索引/引导密钥索引
ki:引导密钥索.
S0、S1、S2、S3、S4、S5、S6、S10、S20、S21、S22、S40、S50、S51、S52、S53、S54:步骤
Xi:私有安全密钥/私有密钥
Y1、Y2、Y3、Y4、Y5、Y6:公共密钥
具体实施方式
通过结合附图阅读后面的说明及附属权利要求,本发明的其他实施例、特征及优点将变得显而易见。
在各附图中,除非另有指示,否则相同的参考编号标示相同的或在功能上等效的元件。
在本发明通篇中,如果未结合各实施例另外定义,则表达语“存储装置”是指一种能够存储数据(例如密钥或密钥索引)的构件。此类构件可依据存储器胞元或存储器区段来加以组织,所述存储器胞元或存储器区段可为单个硬件装置的一部分和/或可为多个单独的装置。
图1示出根据实施例的计算机化系统1。计算机化系统1包括经由内部总线8而彼此连接的第一安全存储装置2、第二安全存储装置3、引导脚本存储单元4、及引导脚本执行单元6。此处,计算机化系统1是标准个人计算机(personal computer,PC)。
第一安全存储装置2是其中安全地存储有多个公共密钥Y1-YN的可信平台模块。在本实例中,可信平台模块2中存储有6个公共密钥Y1-Y6。存储在可信平台模块2中的公共密钥的数目可受可信平台模块2的存储容量限制。此处,公共密钥Y1-Y6是密码公共密钥,其是由计算机1的制造商连同对应的私有密钥(图中未表示)一起产生以形成唯一地相关的密码密钥对。公共密钥Y1-Y6由同一制造商存储在可信平台模块2中,而对应的私有密钥由制造商安全地保管。
在图1中,每一公共密钥Y1-Y6被表示为矩形密钥对的一部分。与所表示公共密钥Y1-Y6中的每一者对应的私有密钥的形状与各自公共密钥Y1-Y6的形状啮合,以形成所述矩形密钥对。
对于每一公共密钥Y1-Y6,存在相关联的公共密钥索引k1-kN,此处为k1-k6。密钥索引k1-k6可为指示或标示各自公共密钥Y1-Y6的从1至6的整数。在本实例中,密钥索引k1取值1,并表示第一公共密钥(即Y1)。类似地,密钥索引k2取值2,并表示第二公共密钥(即Y2),且对于剩余的密钥索引k3k6,依此类推。
使用所产生的私有密钥中的一者作为私有安全密钥Xi来对存储在引导脚本存储单元4中的引导脚本5进行加密。计算机1或计算机1的用户并不知晓且无法知晓对引导脚本5进行加密是使用了哪一私有密钥。
计算机1进一步包括其中存储有当前密钥索引k的第二安全存储装置3,此处为只读存储器。此处,当前密钥索引k是整数,具体来说介于1与6之间的任一整数。在本实例中,当前密钥索引k被取为等于3。
计算机1可被实作成执行用于对计算机化系统1进行初始化/引导的方法,具体来说,图2至图4中所示的用于对计算机化系统1进行初始化的方法。因此,下文结合图2至图4来解释对计算机1的初始化。
在步骤S0中,提供计算机化系统(计算机)1,其包括存储装置2至4及引导脚本5,如图1中所示。
在步骤S1中,从所述多个公共密钥Y1-Y6检索或选择一个公共密钥。举例来说,所检索到的公共密钥是从可信平台模块2复制并临时存储在引导脚本存储单元4中。在确定检索到哪一公共密钥时,应将检索公共密钥Y1-Y6的预定顺序或次序考虑在内。将会连同下文对图3的说明来更详细地阐述检索公共密钥的步骤S1。
在已检索公共密钥(例如,Y3)后,在步骤S2中,判断是否形成唯一密钥对,即,私有密钥Xi与所检索到的公共密钥Y3是否唯一地相关以形成密码密钥对。从图形来看,在图1中,这将对应于能够将私有密钥Xi与所检索到的公共密钥Y3组合以形成矩形。在本实例中,私有密钥Xi与所检索到的公共密钥Y3彼此对应并形成唯一密钥对。因此,过程在步骤S3处继续。
如果所选择的是另一公共密钥(例如公共密钥Y1),则将不会与私有密钥Xi形成唯一密钥对,且过程将返回到步骤S1,在步骤S1中,将从可信平台模块2检索不同的公共密钥。换句话说,从可信平台模块2检索一个公共密钥并检验是否形成唯一密钥对的过程被执行至获得会使得形成唯一密钥对的公共密钥Yi为止。
接着,在步骤S3处,获得会使得形成唯一密钥对的公共密钥Yi的密钥索引来作为引导密钥索引ki。在以上实例中,引导密钥索引是k3,即为3。与此引导密钥索引k3的值有关的信息可存储在引导脚本存储单元4中。
接着,在步骤S4中,将引导密钥索引k3与当前密钥索引k进行比较。具体来说,检验引导密钥索引k3是等于、大于还是小于当前密钥索引k。在步骤S5中,检验是否符合预定关系。此处,要符合的预定关系(其是使引导脚本5能够被执行的必要条件)为:引导密钥索引k3大于或等于当前密钥索引k。
在本实例中,引导密钥索引k3与当前密钥索引k彼此相等且具有值3。因此,确定出符合预定关系,且过程在步骤S6处继续。作为另一选择,如果未符合预定关系,则停止用于对计算机进行初始化的方法。下文将结合图4来详细地对此进行解释。
在步骤S6处,由引导脚本执行单元6(此处为中央处理器(Central ProcessingUnit,CPU))执行引导脚本5。具体来说,计算机1的操作系统被加载,且因此,计算机1被初始化并准备好供使用。
图3示出根据实施例用于确定唯一密钥对的方法。具体来说,图3更详细地解释图2所示的步骤S1及S2。
此处,唯一密钥对的确定是基于指示从可信平台模块2检索公共密钥Y1-Y6的次序的预定顺序而进行。所述预定顺序可预先存储在计算机1中,例如存储在可信平台模块2中或只读存储器3中。此处,所述预定顺序是指示以下的列表:具有密钥索引k1=1的公共密钥Y1应被第一个检索,具有密钥索引k2=2的公共密钥Y2应被第二个检索,且依此类推,直至公共密钥Y6
在步骤S1中,从可信平台模块2检索第一公共密钥,即公共密钥Y1。在步骤S2中,检验是否形成唯一密钥对。此步骤与上文根据图2所详述的步骤S2相同。如果确定出形成密钥对,则过程以上文所详述的步骤S3继续。
否则,如果未形成密钥对,则过程以步骤S20继续。其中,检验是否已从可信平台模块2检索所有公共密钥Y1至Y6,以检验所述公共密钥Y1至Y6是否形成唯一密钥对。如果否,则过程在步骤S10处继续,在步骤S10中,根据所述预定顺序选择并从可信平台模块2检索下一公共密钥(例如Y2)。再次,在步骤S2处,检验是否形成唯一密钥对。
针对存储在可信平台模块2中的每一公共密钥实施步骤S20、S10及S2,直至形成唯一密钥对为止。如果并未与所检索到的密钥中的任一者形成唯一密钥对,则在步骤S20处,确定出已从可信平台模块2不成功地检索了所有公共密钥Y1-Y6。接着,过程以步骤S21继续,在步骤S21中,例如通过由中央处理器6发出的命令来中断对计算机1的初始化。
接着,在步骤S22处,计算机1发布报警信号,所述报警信号指示对计算机1的初始化因缺少与私有密钥Xi形成唯一密钥对的公共密钥而停止。举例来说,所述报警信号可作为光信号或声音信号而向计算机1的用户发出。如此一来,用户知晓错误,且计算机1的安全性得以保证。
图4示出根据实施例用于将引导密钥索引与当前密钥索引进行比较的方法。具体来说,图4更详细地说明检验是否符合预定关系的步骤S5。所述步骤可由中央处理器6执行。在图4所示实例中,要满足的预定关系是:引导密钥索引ki需要大于或等于当前密钥索引k。当前密钥索引k将高于自身的所有密钥索引列入白名单,而将低于自身的所有密钥索引列入黑名单。
首先,在步骤S40中,提供从会使得形成唯一密钥对的公共密钥Yi获得的引导密钥索引ki以及从只读存储器3获得的当前密钥索引k。
在步骤S50中,检验当前密钥索引k是否等于引导密钥索引ki。如果是,则如同在步骤S6中由中央处理器6执行引导脚本5,如上所详述。这对应于对计算机1进行正常初始化而不进行任何更新。
然而,如果当前密钥索引k不等于引导密钥索引ki,则过程在步骤S51处继续,在步骤S51处,检验引导密钥索引ki是否大于当前密钥索引k。这对应于其中计算机制造商为了将某一密钥索引列入黑名单以避免使计算机受到任何攻击而执行硬件更新的情况。
如果引导密钥索引ki确实大于当前密钥索引k,则在步骤S52中,将当前密钥索引k改变/更新成引导密钥索引。只有到那时,才在步骤S6处执行引导脚本5。在接下来的初始化过程期间,引导密钥索引ki必须与改变后/更新后的引导密钥k满足预定关系才容许引导脚本5被执行。
如果在步骤S51确定出引导密钥索引ki不大于当前密钥索引k(即,在当前密钥索引k大于引导密钥索引ki时),则过程以步骤S53继续,在步骤S53中,中断对计算机1的初始化。这可能在例如使用的是旧的脚本或被黑客攻击的脚本时发生。中断对计算机1的初始化会提高计算机1的安全性。
另外,在步骤S54中,计算机1发布报警信号,所述报警信号指示对计算机1的初始化因未符合所述预定关系而停止。举例来说,所述报警信号可作为消息或者作为光信号或声音信号而向计算机1的用户发出或被发送到中央服务器。如此一来,计算机1的安全性得以保证。
虽然已根据优选实施例阐述了本发明,但对于所属领域中的技术人员来说显而易见,可在所有实施例中作出修改。安全存储装置并不暗示将使用特定硬件。“安全存储装置”应被解释为保存可靠信息或数据的装置。举例来说,任何存储单元/存储媒体均可用作第一安全存储单元、引导脚本存储单元及第二安全存储单元。还应理解,表达语“第一存储装置和/或第二存储装置”并非旨在规定存储装置的具体数目。而是,公共密钥和/或当前密钥索引可存储在任何适合的存储器架构中。可使用任何数量的公共密钥。私有密钥可存储在所需数量的第一安全存储装置中。可使用任何类型的公共密钥及私有密钥,而不只是签名及加密密钥/解密密钥。此外,可以任何方式来修改所述预定顺序及所述预定关系。

Claims (14)

1.一种用于通过执行引导脚本(5)来对计算机化系统(1)进行初始化的方法,所述引导脚本(5)具有相关联的私有安全密钥(Xi),其中所述计算机化系统(1)包括第一安全存储装置(2)及第二安全存储装置(3),所述第一安全存储装置(2)用于存储各自被指派有公共密钥索引(k1-kN)的多个公共密钥(Y1-YN),所述第二安全存储装置(3)用于存储当前密钥索引(k),其特征在于,所述方法包括:
只有在从所述多个公共密钥(Y1-YN)选择的公共密钥(Yi)与所述私有安全密钥(Xi)唯一地相关以与所述私有安全密钥(Xi)形成唯一密钥对且具有与所述当前密钥索引(k)呈预定关系的引导密钥索引(ki)时,执行所述引导脚本(5);
从所述第一安全存储装置(2)检索(S1)所述多个公共密钥(Y1-YN)中的一者,并检验(S2)所检索到的所述公共密钥(Yi)是否与所述私有安全密钥(Xi)形成所述唯一密钥对;
如果所检索到的所述公共密钥(Yi)与所述私有安全密钥(Xi)形成所述唯一密钥对,则获得(S3)所检索到的所述公共密钥(Yi)的密钥索引来作为所述引导密钥索引(ki);
将所述引导密钥索引(ki)与所述当前密钥索引(k)进行比较(S4);
只有在确定出(S5)所述引导密钥索引(ki)与所述当前密钥索引(k)符合所述预定关系时,才执行(S6)所述引导脚本(5)。
2.根据权利要求1所述的方法,其特征在于,针对所述多个公共密钥(Y1-YN)中的每一公共密钥实施所述从所述第一安全存储装置(2)检索(S1)所述多个公共密钥(Y1-YN)中的一者并检验(S2)所检索到的所述公共密钥(Yi)是否与所述私有安全密钥(Xi)形成所述唯一密钥对的步骤,直至确定出与所述私有安全密钥(Xi)形成所述唯一密钥对的所述公共密钥(Yi)为止。
3.根据权利要求1所述的方法,其特征在于,所述多个公共密钥(Y1-YN)是根据预定顺序被逐一地检索。
4.根据权利要求2或3所述的方法,其特征在于,进一步包括:
如果确定出所述多个公共密钥(Y1-YN)中的任一者均未与所述私有安全密钥(Xi)形成所述唯一密钥对,则中断(S21)所述对所述计算机化系统(1)的初始化和/或发布(S22)报警信号。
5.根据权利要求1所述的方法,其特征在于,只有在所述引导密钥索引(ki)等于或大于所述当前密钥索引(k)时,所述引导脚本(5)才被执行。
6.根据权利要求1所述的方法,其特征在于,进一步包括:
如果确定出所述引导密钥索引(ki)与所述当前密钥索引(k)未满足所述预定关系,则中断(S53)所述对所述计算机化系统(1)的初始化和/或发布(S54)报警信号。
7.根据权利要求1所述的方法,其特征在于,进一步包括:
如果确定出所述引导密钥索引(ki)处于预定义范围内,则将所述当前密钥索引(k)改变(S52)成所述引导密钥索引(ki)。
8.根据权利要求1所述的方法,其特征在于,进一步包括:
如果所述引导密钥索引(ki)和/或所述当前密钥索引(k)对应于黑名单值中的任一者,则由所述黑名单值形成的黑名单指示所述引导脚本(5)的执行将被阻止。
9.根据权利要求8所述的方法,其特征在于,进一步包括:
在执行所述引导脚本(5)之后,将所述当前密钥索引(k)的值添加到所述黑名单;
如果所述引导密钥索引(ki)与所述当前密钥索引(k)未符合所述预定关系,则将所述当前密钥索引(k)的值添加到所述黑名单;以和/或者
如果所检索到的所述公共密钥(Yi)未与所述私有安全密钥(Xi)形成所述唯一密钥对,则将所述当前密钥索引(k)的值添加到所述黑名单。
10.根据权利要求1所述的方法,其特征在于,所述第一安全存储装置(2)包括可信平台模块、微控制器、或现场可编程门阵列中的至少一者。
11.根据权利要求1所述的方法,其特征在于,所述私有安全密钥(Xi)与所述公共密钥(Yi)是密码密钥,所述密码密钥进行交互作用以使得只有使用所述公共密钥(Yi)才能将用所述私有安全密钥(Xi)加密的所述引导脚本(5)解密。
12.根据权利要求1所述的方法,其特征在于,所述私有安全密钥(Xi)是所述引导脚本(5)的签名,所述签名与所述公共密钥(Yi)进行交互作用以使得只有使用所述公共密钥(Yi)才能使所述引导脚本(5)生效。
13.根据权利要求1所述的方法,其特征在于,进一步包括:
通过对所述计算机化系统(1)进行固件更新来更新所述引导脚本(5),从而变更相关联的所述私有安全密钥(Xi)。
14.一种被实作成执行根据权利要求1所述的方法的计算机化系统(1),其特征在于,包括:
第一安全存储装置(2),用于存储各自被指派有公共密钥索引(k1-kN)的多个公共密钥(Y1-YN);
第二安全存储装置(3),用于存储当前密钥索引(k);
引导脚本存储单元(4),用于存储引导脚本(5),所述引导脚本(5)具有相关联的私有安全密钥(Xi);以及
引导脚本执行单元(6),用于只有在从所述多个公共密钥(Y1-YN)选择的公共密钥(Yi)与所述私有安全密钥(Xi)唯一地相关以与所述私有安全密钥(Xi)形成唯一密钥对且具有与所述当前密钥索引(k)呈预定关系的引导密钥索引(ki)时才执行所述引导脚本(5);
所述引导脚本执行单元(6)从所述第一安全存储装置(2)检索(S1)所述多个公共密钥(Y1-YN)中的一者,并检验(S2)所检索到的所述公共密钥(Yi)是否与所述私有安全密钥(Xi)形成所述唯一密钥对;
如果所检索到的所述公共密钥(Yi)与所述私有安全密钥(Xi)形成所述唯一密钥对,则所述引导脚本执行单元(6)获得(S3)所检索到的所述公共密钥(Yi)的密钥索引来作为所述引导密钥索引(ki);
所述引导脚本执行单元(6)将所述引导密钥索引(ki)与所述当前密钥索引(k)进行比较(S4);
只有在确定出(S5)所述引导密钥索引(ki)与所述当前密钥索引(k)符合所述预定关系时,所述引导脚本执行单元(6)才执行(S6)所述引导脚本(5)。
CN201810033497.5A 2017-03-31 2018-01-12 用于对计算机化系统进行初始化的方法及计算机化系统 Active CN108694322B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP17164299.4 2017-03-31
EP17164299.4A EP3382590B1 (en) 2017-03-31 2017-03-31 Method for initializing a computerized system and computerized system against rollback attacks

Publications (2)

Publication Number Publication Date
CN108694322A CN108694322A (zh) 2018-10-23
CN108694322B true CN108694322B (zh) 2021-10-19

Family

ID=58548974

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810033497.5A Active CN108694322B (zh) 2017-03-31 2018-01-12 用于对计算机化系统进行初始化的方法及计算机化系统

Country Status (4)

Country Link
US (1) US10621355B2 (zh)
EP (1) EP3382590B1 (zh)
JP (1) JP6501001B2 (zh)
CN (1) CN108694322B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210089485A (ko) 2020-01-08 2021-07-16 삼성전자주식회사 소프트웨어의 인증을 위한 장치 및 방법
JP2023053458A (ja) 2021-10-01 2023-04-13 富士通株式会社 制御プログラム、制御方法、及び情報処理装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2009015116A1 (en) * 2007-07-23 2009-01-29 Scientific-Atlanta, Inc. Preventing unauthorized poaching of set top box assets
WO2014143009A1 (en) * 2013-03-15 2014-09-18 Intel Corporation Key revocation in system on chip devices
CN104156659A (zh) * 2014-08-14 2014-11-19 电子科技大学 一种嵌入式系统的安全启动方法

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8984265B2 (en) * 2007-03-30 2015-03-17 Intel Corporation Server active management technology (AMT) assisted secure boot
WO2009044533A1 (ja) * 2007-10-05 2009-04-09 Panasonic Corporation セキュアブート端末、セキュアブート方法、セキュアブートプログラム、記録媒体及び集積回路
US20090268902A1 (en) * 2008-04-25 2009-10-29 Koolspan, Inc. System for and method of cryptographic provisioning
US9980146B2 (en) * 2009-01-28 2018-05-22 Headwater Research Llc Communications device with secure data path processing agents
US8484451B2 (en) * 2010-03-11 2013-07-09 St-Ericsson Sa Method and apparatus for software boot revocation
KR20120092222A (ko) * 2011-02-11 2012-08-21 삼성전자주식회사 보안 부팅 방법 및 보안 부트 이미지 생성 방법
US9189225B2 (en) * 2012-10-16 2015-11-17 Imprivata, Inc. Secure, non-disruptive firmware updating
US9239920B2 (en) * 2013-04-23 2016-01-19 Qualcomm Incorporated Generation of working security key based on security parameters
US10545770B2 (en) * 2016-11-14 2020-01-28 Intel Corporation Configurable client hardware

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2009015116A1 (en) * 2007-07-23 2009-01-29 Scientific-Atlanta, Inc. Preventing unauthorized poaching of set top box assets
WO2014143009A1 (en) * 2013-03-15 2014-09-18 Intel Corporation Key revocation in system on chip devices
CN104156659A (zh) * 2014-08-14 2014-11-19 电子科技大学 一种嵌入式系统的安全启动方法

Also Published As

Publication number Publication date
US10621355B2 (en) 2020-04-14
US20180285569A1 (en) 2018-10-04
JP6501001B2 (ja) 2019-04-17
EP3382590A1 (en) 2018-10-03
EP3382590B1 (en) 2019-10-16
CN108694322A (zh) 2018-10-23
JP2018173936A (ja) 2018-11-08

Similar Documents

Publication Publication Date Title
US9680648B2 (en) Securely recovering a computing device
US8732445B2 (en) Information processing device, information processing method, information processing program, and integrated circuit
US8230412B2 (en) Compatible trust in a computing device
KR101066727B1 (ko) 컴퓨팅 장치의 보안 부팅
EP2668566B1 (en) Authenticate a hypervisor with encoded information
US20120246470A1 (en) Information processing device, information processing system, software routine execution method, and remote attestation method
US8392724B2 (en) Information terminal, security device, data protection method, and data protection program
US11106798B2 (en) Automatically replacing versions of a key database for secure boots
WO2008085367A1 (en) Trusting an unverified code image in a computing device
CN108140092B (zh) 具有多个可信根的设备
US20180204009A1 (en) Method and apparatus for controlling secure boot of board, and method and apparatus for upgrading software package
CN113656086A (zh) 安全存储及加载固件的方法及电子装置
EP3762850A1 (en) Attestable and destructible device identity
CN109814934B (zh) 数据处理方法、装置、可读介质和系统
CN112148314B (zh) 一种嵌入式系统的镜像验证方法、装置、设备及存储介质
CN104899524B (zh) 中央处理器和验证主机板数据的方法
US11347858B2 (en) System and method to inhibit firmware downgrade
CN108694322B (zh) 用于对计算机化系统进行初始化的方法及计算机化系统
CN107924440B (zh) 用于管理容器的方法、系统和计算机可读介质
CN115061735A (zh) 一种处理方法和装置
CN112269980A (zh) 处理器架构
Wang et al. Research on trusted computing implementations in windows
CN112487500A (zh) 认证方法
CN115221499A (zh) 信息处理装置及其控制方法和存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant