[go: up one dir, main page]

CN103810443B - Device and method for protecting basic input and output systems - Google Patents

Device and method for protecting basic input and output systems Download PDF

Info

Publication number
CN103810443B
CN103810443B CN201410085132.9A CN201410085132A CN103810443B CN 103810443 B CN103810443 B CN 103810443B CN 201410085132 A CN201410085132 A CN 201410085132A CN 103810443 B CN103810443 B CN 103810443B
Authority
CN
China
Prior art keywords
bios
mentioned
message digest
microprocessor
random number
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
CN201410085132.9A
Other languages
Chinese (zh)
Other versions
CN103810443A (en
Inventor
G.G.亨利
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.)
Via Technologies Inc
Original Assignee
Via Technologies Inc
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
Priority claimed from US14/079,226 external-priority patent/US9129113B2/en
Priority claimed from US14/079,299 external-priority patent/US9183394B2/en
Application filed by Via Technologies Inc filed Critical Via Technologies Inc
Publication of CN103810443A publication Critical patent/CN103810443A/en
Application granted granted Critical
Publication of CN103810443B publication Critical patent/CN103810443B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/572Secure firmware programming, e.g. of basic input output system [BIOS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/44Program or device authentication

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Storage Device Security (AREA)

Abstract

The invention discloses a device and a method for protecting a basic input output system. A read-only memory includes a plurality of partitions and a plurality of encrypted digests. Each partition is stored as readable text. Each encrypted digest includes an encrypted version of the first digest and a corresponding partition. A selector selects one or more partitions in response to the interrupt. A detector accesses the partition and the corresponding encrypted digest in response to the interrupt and instructs a microprocessor to generate the corresponding one or more second digests corresponding to the partition and the corresponding one or more decrypted digests corresponding to the encrypted digest using the same algorithms and keys used to generate the first digest and the encrypted digest. A selector compares the second digest with the decrypted digest and prevents operation of the microprocessor when the second digest and the decrypted digest are not in the same pair.

Description

保护基本输入输出系统的设备与方法Device and method for protecting basic input and output systems

技术领域technical field

本发明涉及一种微电子,特别是涉及能保护计算系统中基本输入/输出系统(basic input/output system,BIOS)的装置与方法。The present invention relates to a microelectronics, in particular to a device and method capable of protecting a basic input/output system (BIOS) in a computing system.

背景技术Background technique

计算平台有各种形式和大小,例如:桌上型计算机、笔记型计算机、平板计算机、个人数字助理(PDA)和智能手机。在这些不同形式的计算平台中,只有少数会采用非常强大的工具。Computing platforms come in all shapes and sizes, such as: desktops, notebooks, tablets, personal digital assistants (PDAs), and smartphones. Of these various forms of computing platforms, only a few employ very powerful tools.

当计算平台被拆开之后,几乎所有形式的计算平台是共享相同的基本结构或配置。在其核心是一个中央处理单元(通常是微处理器)、用于储存程序的存储器(以硬碟或固态硬碟的形式)、执行程序的更快的存储器(通常为随机存取存储器)以及储存基本输入/输出系统(basic input/output system,BIOS)的存储器。When a computing platform is taken apart, almost all forms of computing platforms share the same basic structure or configuration. At its core is a central processing unit (usually a microprocessor), memory for storing programs (in the form of a hard disk or solid-state drive), faster memory for executing programs (usually random access memory), and Memory that stores the basic input/output system (BIOS).

对这些平台而言,BIOS是分层编程的最底层,其能启动标准的操作系统和应用程序,而使用特定计算平台所配置的硬件来执行操作。BIOS通常与硬件接口有大量的关联性,所以当平台配置有改变时,较高阶层的程序不需要修改就可容纳这些改变。当然,当有改变时,BIOS通常会被升级,这就是为什么BIOS的储存通常与操作系统和应用程序的储存是分离。For these platforms, the BIOS is the lowest level of hierarchical programming that enables standard operating systems and applications to be launched using the hardware configured for a particular computing platform to perform operations. The BIOS usually has a lot of dependencies on the hardware interface, so when the platform configuration changes, the higher-level programs don't need to be modified to accommodate those changes. Of course, the BIOS is usually updated when there are changes, which is why the storage of the BIOS is usually separate from the storage of the operating system and applications.

BIOS不仅包括了计算平台的基本操作,其亦包括配置数据和安全数据(例如计算系统是否被授权来执行特定的应用程序等)。因为BIOS包含了安全数据,所以其通常是黑客之类的目标。例如,藉由修改系统的BIOS,未授权的使用者便能执行未经授权的程序。因此,对系统设计者极为重要的是,当系统不工作而BIOS正在操作时,BIOS的有效性和完整性能得到保护和保证。The BIOS not only includes the basic operations of the computing platform, but also includes configuration data and security data (such as whether the computing system is authorized to execute specific applications, etc.). Because the BIOS contains security data, it is often a target for hackers and the like. For example, by modifying the system's BIOS, unauthorized users can execute unauthorized programs. Therefore, it is extremely important to system designers that the validity and integrity of the BIOS is protected and guaranteed when the system is not functioning and the BIOS is operating.

因此,为了能支持升级和/或重新编程以支持系统配置的改变,一方面希望系统的BIOS能容易进行存取。而在另一方面,保护或限制对BIOS的内容进行存取是很重要的,以避免未经授权者的篡改。Therefore, in order to support upgrades and/or reprogramming to support system configuration changes, it is desirable on the one hand that the BIOS of the system be easily accessible. On the other hand, it is important to protect or restrict access to the contents of the BIOS to avoid tampering by unauthorized persons.

实现一个或两个上述目标的一些尝试会导致架构被限制。例如,移动储存的BIOS到类似系统的微处理器的同一芯片上以防止BIOS被篡改,但却完全违背了容易升级的目的,因为BIOS不再是实体存取。其他技术强调BIOS内容的加密,从保护的观点来看这是有利的,但是这会削减系统的性能。因为每次需要使用到无法接受的数量的操作来对BIOS内容进行解密。Some attempts to achieve one or both of the above goals result in constrained architectures. For example, moving the stored BIOS to the same chip as the microprocessor in a similar system prevents the BIOS from being tampered with, but completely defeats the purpose of easy upgrades since the BIOS is no longer physically accessible. Other techniques emphasize encryption of the BIOS contents, which is advantageous from a protection point of view, but can detract from system performance. Because it requires an unacceptable number of operations to decrypt the BIOS content each time.

因此,需要一种能支持计算系统的BIOS内容的可存取性以及升级,也能保护BIOS内容免遭未经授权篡改的新颖技术。Therefore, there is a need for a novel technology that can support the accessibility and upgrade of the BIOS content of the computing system, and can also protect the BIOS content from unauthorized tampering.

发明内容Contents of the invention

本发明提供较佳的技术,用以解决上述问题并满足其它问题及缺点以及现有技术的受限。The present invention provides a better technique to solve the above problems and meet other problems and disadvantages as well as limitations of the prior art.

本发明提供了一种优秀的技术,用于保护计算系统的BIOS免于攻击。在一实施例中,提供了一种设备,用以保护一计算系统内的一基本输入输出系统。上述设备包括一基本输入输出系统只读存储器、一分区选择器与一窜改检测器。上述基本输入输出系统只读存储器包括多个基本输入输出系统内容分区以及多个加密讯息文摘。每一上述基本输入输出系统内容分区是储存为可读文本,以及每一上述加密讯息文摘包括一第一讯息文摘的一加密版本以及所对应的上述基本输入输出系统内容分区。回应于中断上述计算系统的正常操作的一基本输入输出系统检查中断,上述分区选择器选择一个或多个上述基本输入输出系统内容分区。上述窜改检测器耦接于上述基本输入输出系统只读存储器以及上述分区选择器。回应于上述基本输入输出系统检查中断,上述窜改检测器对一个或多个上述基本输入输出系统内容分区以及所对应的一个或多个上述加密讯息文摘进行存取,并指示一微处理器使用用来产生上述第一讯息文摘与上述加密讯息文摘的相同演算法与密钥来产生对应于一个或多个上述基本输入输出系统内容分区的所对应的一个或多个第二讯息文摘以及对应于一个或多个上述加密讯息文摘的所对应的一个或多个解密讯息文摘。上述窜改检测器比较上述第二讯息文摘与上述解密讯息文摘,以及当一个或多个上述第二讯息文摘以及一个或多个上述解密讯息文摘不是成对相同时,防止上述微处理器的操作。The present invention provides an excellent technique for protecting the BIOS of a computing system from attacks. In one embodiment, an apparatus for securing a BIOS within a computing system is provided. The device includes a BIOS ROM, a partition selector and a tamper detector. The above-mentioned BIOS ROM includes multiple BIOS content partitions and multiple encrypted message digests. Each of the BIOS content partitions is stored as readable text, and each of the encrypted message digests includes an encrypted version of a first message digest and the corresponding BIOS content partition. In response to a BIOS check interrupt interrupting normal operation of the computing system, the partition selector selects one or more of the BIOS content partitions. The tamper detector is coupled to the BIOS ROM and the partition selector. In response to the BIOS check interrupt, the tamper detector accesses one or more of the BIOS content partitions and the corresponding one or more of the encrypted message digests, and instructs a microprocessor to use to generate the same algorithm and key as the above-mentioned first message digest and the above-mentioned encrypted message digest to generate one or more corresponding second message digests corresponding to one or more of the above-mentioned BIOS content partitions and corresponding to one One or more decrypted message digests corresponding to one or more of the above encrypted message digests. The tamper detector compares the second message digest with the decrypted message digest, and prevents operation of the microprocessor when one or more of the second message digests and one or more of the decrypted message digests are not pairwise identical.

再者,本发明提供另一种设备,用以保护一计算系统内的一基本输入输出系统。上述设备包括一基本输入输出系统只读存储器以及一微处理器耦接于上述基本输入输出系统只读存储器。上述基本输入输出系统只读存储器包括:多个基本输入输出系统内容分区,其中每一上述基本输入输出系统内容分区是储存为可读文本;以及多个加密讯息文摘,其中每一上述加密讯息文摘包括一第一讯息文摘的一加密版本以及所对应的上述基本输入输出系统内容分区。上述微处理器包括一分区选择器以及一窜改检测器。回应于中断上述计算系统的正常操作的一基本输入输出系统检查中断,上述分区选择器选择一个或多个上述基本输入输出系统内容分区。上述窜改检测器是耦接于上述基本输入输出系统只读存储器以及上述分区选择器。回应于上述基本输入输出系统检查中断,上述窜改检测器对一个或多个上述基本输入输出系统内容以及所对应的一个或多个上述加密讯息文摘进行存取,并指示上述微处理器使用用来产生上述第一讯息文摘与上述加密讯息文摘的相同演算法与密钥来产生对应于一个或多个上述基本输入输出系统内容分区的所对应的一个或多个第二讯息文摘以及对应于一个或多个上述加密讯息文摘的所对应的一个或多个解密讯息文摘。上述窜改检测器比较上述第二讯息文摘与上述解密讯息文摘,以及当一个或多个上述第二讯息文摘以及一个或多个上述解密讯息文摘不是成对相同时,防止上述微处理器的操作。Furthermore, the present invention provides another device for protecting a BIOS in a computing system. The device includes a BIOS ROM and a microprocessor coupled to the BIOS ROM. The BIOS ROM includes: a plurality of BIOS content partitions, each of which is stored as readable text; and a plurality of encrypted message digests, wherein each of the encrypted message digests It includes an encrypted version of a first message digest and the corresponding BIOS content partition. The microprocessor includes a partition selector and a tamper detector. In response to a BIOS check interrupt interrupting normal operation of the computing system, the partition selector selects one or more of the BIOS content partitions. The tamper detector is coupled to the BIOS ROM and the partition selector. In response to the BIOS check interrupt, the tamper detector accesses one or more of the BIOS content and the corresponding one or more of the encrypted message digests, and instructs the microprocessor to use generating the same algorithm and key for the above-mentioned first message digest and the above-mentioned encrypted message digest to generate corresponding one or more second message digests corresponding to one or more of the above-mentioned BIOS content partitions and corresponding to one or more One or more decrypted message digests corresponding to the plurality of encrypted message digests. The tamper detector compares the second message digest with the decrypted message digest, and prevents operation of the microprocessor when one or more of the second message digests and one or more of the decrypted message digests are not pairwise identical.

再者,本发明提供一种方法,用以保护一计算系统内的一基本输入输出系统。储存多个基本输入输出系统内容分区以及多个加密讯息文摘至一基本输入输出系统只读存储器,其中每一上述基本输入输出系统内容分区是储存为可读文本,以及每一上述加密讯息文摘包括一第一讯息文摘的一加密版本以及所对应的上述基本输入输出系统内容分区。回应于中断上述计算系统的正常操作的一基本输入输出系统检查中断,选择一个或多个上述基本输入输出系统内容分区。回应于上述基本输入输出系统检查中断,对一个或多个上述基本输入输出系统内容以及所对应的一个或多个上述加密讯息文摘进行存取,以及使用用来产生上述第一讯息文摘与上述加密讯息文摘的相同演算法与密钥来产生对应于一个或多个上述基本输入输出系统内容分区的所对应的一个或多个第二讯息文摘以及对应于一个或多个上述加密讯息文摘的所对应的一个或多个解密讯息文摘。比较上述第二讯息文摘与上述解密讯息文摘。以及当一个或多个上述第二讯息文摘以及一个或多个上述解密讯息文摘不是成对相同时,防止一微处理器的操作。Furthermore, the present invention provides a method for protecting a BIOS in a computing system. storing a plurality of BIOS content partitions and a plurality of encrypted message digests in a BIOS read-only memory, wherein each of said BIOS content partitions is stored as readable text, and each of said encrypted message digests includes An encrypted version of a first message digest and the corresponding BIOS content partition. One or more of the BIOS content partitions are selected in response to a BIOS check interrupt interrupting normal operation of the computing system. In response to the above-mentioned BIOS check interrupt, accessing one or more of the above-mentioned BIOS content and the corresponding one or more of the above-mentioned encrypted message digests, and using the information used to generate the above-mentioned first message digest and the above-mentioned encrypted The same algorithm and key for the message digests to generate one or more second message digests corresponding to one or more of the aforementioned BIOS content partitions and corresponding one or more second message digests corresponding to one or more of the aforementioned encrypted message digests One or more decrypted message digests for . The above second message digest is compared with the above decrypted message digest. and preventing operation of a microprocessor when one or more of said second message digests and one or more of said decrypted message digests are not pairwise identical.

再者,本发明提供另一种设备,用以保护一计算系统内的一基本输入输出系统。上述设备包括:一基本输入输出系统只读存储器,包括:多个基本输入输出系统内容分区,其中每一上述基本输入输出系统内容分区是储存为可读文本;以及多个加密讯息文摘,其中每一上述加密讯息文摘包括一第一讯息文摘的一加密版本以及所对应的上述基本输入输出系统内容分区;一分区选择器,用以回应于中断上述计算系统的正常操作的一基本输入输出系统检查中断,选择一个或多个上述基本输入输出系统内容分区;以及一窜改检测器,耦接于上述基本输入输出系统只读存储器以及上述分区选择器,用以在时间间隔以及事件发生的一组合而产生上述基本输入输出系统检查中断、回应于上述基本输入输出系统检查中断而对一个或多个上述基本输入输出系统内容分区以及所对应的一个或多个上述加密讯息文摘进行存取、指示一微处理器使用用来产生上述第一讯息文摘与上述加密讯息文摘的相同演算法与密钥来产生对应于一个或多个上述基本输入输出系统内容分区的所对应的一个或多个第二讯息文摘以及对应于一个或多个上述加密讯息文摘的所对应的一个或多个解密讯息文摘、比较上述第二讯息文摘与上述解密讯息文摘,以及当一个或多个上述第二讯息文摘以及一个或多个上述解密讯息文摘不是成对相同时,防止上述微处理器的操作。Furthermore, the present invention provides another device for protecting a BIOS in a computing system. The apparatus includes: a BIOS ROM, comprising: a plurality of BIOS content partitions, each of which is stored as readable text; and a plurality of encrypted message digests, each of which an encrypted message digest including an encrypted version of a first message digest and the corresponding BIOS content partition; a partition selector responsive to a BIOS check interrupting normal operation of the computing system an interrupt for selecting one or more of the BIOS content partitions; and a tamper detector coupled to the BIOS ROM and the partition selector for detecting at a combination of time intervals and event occurrences generating the above-mentioned BIOS check interrupt, responding to the above-mentioned BIOS check interrupt, accessing one or more of the above-mentioned BIOS content partitions and the corresponding one or more of the above-mentioned encrypted message digests, and instructing a micro The processor uses the same algorithm and key used to generate the first message digest and the encrypted message digest to generate one or more second message digests corresponding to the one or more BIOS content partitions and corresponding one or more decrypted message digests corresponding to one or more of said encrypted message digests, comparing said second message digest with said decrypted message digest, and when one or more of said second message digests and one or more When said decrypted message digests are not pairwise identical, said microprocessor is prevented from operating.

再者,本发明提供另一种设备,用以保护一计算系统内的一基本输入输出系统。上述设备包括:一基本输入输出系统只读存储器,包括:多个基本输入输出系统内容分区,其中每一上述基本输入输出系统内容分区是储存为可读文本;以及多个加密讯息文摘,其中每一上述加密讯息文摘包括一第一讯息文摘的一加密版本以及所对应的上述基本输入输出系统内容分区;一微处理器,耦接于上述基本输入输出系统只读存储器,包括:一分区选择器,用以回应于中断上述计算系统的正常操作的一基本输入输出系统检查中断,选择一个或多个上述基本输入输出系统内容分区;以及一窜改检测器,耦接于上述基本输入输出系统只读存储器以及上述分区选择器,用以在时间间隔以及事件发生的一组合而产生上述基本输入输出系统检查中断、回应于上述基本输入输出系统检查中断而对一个或多个上述基本输入输出系统内容分区以及所对应的一个或多个上述加密讯息文摘进行存取、指示上述微处理器使用用来产生上述第一讯息文摘与上述加密讯息文摘的相同演算法与密钥来产生对应于一个或多个上述基本输入输出系统内容分区的所对应的一个或多个第二讯息文摘以及对应于一个或多个上述加密讯息文摘的所对应的一个或多个解密讯息文摘、比较上述第二讯息文摘与上述解密讯息文摘,以及当一个或多个上述第二讯息文摘以及一个或多个上述解密讯息文摘不是成对相同时,防止上述微处理器的操作。Furthermore, the present invention provides another device for protecting a BIOS in a computing system. The apparatus includes: a BIOS ROM, comprising: a plurality of BIOS content partitions, each of which is stored as readable text; and a plurality of encrypted message digests, each of which The above-mentioned encrypted message digest includes an encrypted version of the first message digest and the corresponding content partition of the above-mentioned BIOS; a microprocessor, coupled to the above-mentioned BIOS ROM, includes: a partition selector , for selecting one or more of said BIOS content partitions in response to a BIOS check interrupt interrupting normal operation of said computing system; and a tamper detector coupled to said BIOS read-only The memory and the above-mentioned partition selector are used to generate the above-mentioned BIOS check interrupt at a combination of time intervals and event occurrences, and partition one or more of the above-mentioned BIOS content in response to the above-mentioned BIOS check interrupt and the corresponding one or more encrypted message digests to access, instruct the microprocessor to use the same algorithm and key used to generate the first message digest and the encrypted message digest to generate one or more corresponding One or more second message digests corresponding to the above-mentioned BIOS content partitions and one or more decrypted message digests corresponding to one or more of the above-mentioned encrypted message digests, comparing the above-mentioned second message digests with the above-mentioned decrypting message digests, and preventing operation of said microprocessor when one or more of said second message digests and one or more of said decrypted message digests are not pairwise identical.

再者,本发明提供另一种方法,用以保护一计算系统内的一基本输入输出系统。储存多个基本输入输出系统内容分区以及多个加密讯息文摘至一基本输入输出系统只读存储器,其中每一上述基本输入输出系统内容分区是储存为可读文本,以及每一上述加密讯息文摘包括一第一讯息文摘的一加密版本以及所对应的上述基本输入输出系统内容分区。回应于中断上述计算系统的正常操作的一基本输入输出系统检查中断,选择一个或多个上述基本输入输出系统内容分区。在时间间隔以及事件发生的一组合而产生上述基本输入输出系统检查中断。回应于上述基本输入输出系统检查中断,对一个或多个上述基本输入输出系统内容以及所对应的一个或多个上述加密讯息文摘进行存取,以及使用用来产生上述第一讯息文摘与上述加密讯息文摘的相同演算法与密钥来产生对应于一个或多个上述基本输入输出系统内容分区的所对应的一个或多个第二讯息文摘以及对应于一个或多个上述加密讯息文摘的所对应的一个或多个解密讯息文摘。比较上述第二讯息文摘与上述解密讯息文摘。以及当一个或多个上述第二讯息文摘以及一个或多个上述解密讯息文摘不是成对相同时,防止一微处理器的操作。Furthermore, the present invention provides another method for protecting a BIOS in a computing system. storing a plurality of BIOS content partitions and a plurality of encrypted message digests in a BIOS read-only memory, wherein each of said BIOS content partitions is stored as readable text, and each of said encrypted message digests includes An encrypted version of a first message digest and the corresponding BIOS content partition. One or more of the BIOS content partitions are selected in response to a BIOS check interrupt interrupting normal operation of the computing system. The above-mentioned BIOS check interrupt is generated at a combination of time intervals and event occurrences. In response to the above-mentioned BIOS check interrupt, accessing one or more of the above-mentioned BIOS content and the corresponding one or more of the above-mentioned encrypted message digests, and using the information used to generate the above-mentioned first message digest and the above-mentioned encrypted The same algorithm and key for the message digests to generate one or more second message digests corresponding to one or more of the aforementioned BIOS content partitions and corresponding one or more second message digests corresponding to one or more of the aforementioned encrypted message digests One or more decrypted message digests for . The above second message digest is compared with the above decrypted message digest. and preventing operation of a microprocessor when one or more of said second message digests and one or more of said decrypted message digests are not pairwise identical.

对于工业上的应用,本发明可实施于微处理器中,其是可使用在一般或特殊用途的计算装置。For industrial applications, the invention may be implemented in microprocessors, which are general or special purpose computing devices.

附图说明Description of drawings

图1是显示设置在现今计算系统的主机板的实体元件的方框图;FIG. 1 is a block diagram showing the physical components provided on a motherboard of a present day computing system;

图2是显示图1中各元件相互连接的方框图,用以说明计算系统如何配置基本输入/输出系统;FIG. 2 is a block diagram showing the interconnection of the elements in FIG. 1 to illustrate how the computing system configures the basic input/output system;

图3是显示根据本发明一实施例所述的架构的方框图,用以保护计算系统的基本输入/输出系统;FIG. 3 is a block diagram showing an architecture according to an embodiment of the present invention for protecting a basic input/output system of a computing system;

图4是显示根据本发明一实施例所述的周期性架构的方框图,用以保护计算系统的基本输入/输出系统;4 is a block diagram illustrating a periodic architecture for protecting a basic input/output system of a computing system according to an embodiment of the present invention;

图5是显示根据本发明一实施例所述的基于事件架构的方框图,用以保护计算系统的基本输入/输出系统;5 is a block diagram illustrating an event-based architecture for protecting a basic input/output system of a computing system according to an embodiment of the present invention;

图6是显示根据本发明一实施例所述的基于驱动架构的方框图,用以保护计算系统的基本输入/输出系统;以及FIG. 6 is a block diagram showing a driver-based architecture for protecting a basic input/output system of a computing system according to an embodiment of the present invention; and

图7是显示根据本发明一实施例所述的安全基本输入/输出系统窜改保护架构的方框图。FIG. 7 is a block diagram showing a secure BIOS tamper protection architecture according to an embodiment of the invention.

具体实施方式detailed description

为使本发明的上述和其他目的、特征、和优点能更明显易懂,下文特举出较佳实施例,并结合附图详细说明如下。In order to make the above and other objects, features, and advantages of the present invention more comprehensible, preferred embodiments are enumerated below, which are described in detail with reference to the accompanying drawings.

本发明的示范以及说明的实施例描述如下。为了清楚起见,并非实际实施的所有特征都描述于此。对于本领域技术人员将会理解,在任何这种实际实施例的开发,许多特定于实现的决策均达到特定目标,例如符合与系统相关以及商业相关的约束,可从一实施方式改变成另一实施方式。此外,将会理解,这种开发成果可能是复杂以及耗时,但是对于具有本发明的优势的本领域的技术人员仍然是例行任务。对本领域技术人员而言,较佳实施例的各种修改是显而易见的,且于此所定义的一般原理可以应用到其他的实施例。因此,本发明并不旨在局限于所示以及本文所描述的具体实施例,而是应被赋予最宽的范围相一致的原则以及所揭示的本发明的新颖特征。Exemplary and illustrative embodiments of the invention are described below. In the interest of clarity, not all features of an actual implementation are described herein. Those skilled in the art will appreciate that in the development of any such actual embodiment, many implementation-specific decisions to achieve specific goals, such as compliance with system-related and business-related constraints, may vary from one implementation to another. implementation. Moreover, it will be appreciated that such a development effort might be complex and time consuming, but would nevertheless be a routine undertaking for those skilled in the art having the benefit of this invention. Various modifications to the preferred embodiment will be readily apparent to those skilled in the art, and the generic principles defined herein may be applied to other embodiments. Therefore, the invention is not intended to be limited to the particular embodiments shown and described herein but is to be accorded the widest scope consistent with the novel features of the disclosed invention.

本发明将根据下列附图来描述。描绘在附图中的不同结构、系统和装置仅作为说明,并不会使得本领域的技术人员对本发明难以理解。不过,下列附图是用来叙述与解释本发明的示范例。使用在此的字与词组应该被了解和理解成有与本领域的技术人员所了解的字与词组相一致的意义。用语或词组没有特别的定义,也就是,与平常的及本领域的技术人员所了解的惯例的意义不同的定义的意思是意味着在此使用一致的名称或词组。到了名称或词组意思是有特别意义的程度,也就是,意义与本领域的技术人员所了解的不同,这样的特别定义将明确地列举在直接地与明确地提供特别定义给该名称或词组的定义方式里的详细说明中。The invention will be described with reference to the following figures. The various structures, systems and devices depicted in the figures are illustrative only and will not obscure the present invention to those skilled in the art. However, the following drawings are exemplary examples for describing and explaining the present invention. The words and phrases used herein should be understood and interpreted to have a meaning consistent with the understanding of those words and phrases by those skilled in the art. There is no particular definition of a term or a phrase, that is, a definition different from a conventional meaning understood by those skilled in the art means that a consistent name or phrase is used here. To the extent that a name or phrase has a special meaning, that is, a meaning different from that understood by those skilled in the art, such specific definitions will be explicitly recited in the section that directly and unambiguously provides that particular definition to that name or phrase. In the detailed description in the definition method.

集成电路(Integrated Circuit,IC)是制造在一小块半导体材料(通常是硅)内的一组电子电路。集成电路也被称为芯片、微芯片或晶粒(die)。An Integrated Circuit (IC) is a group of electronic circuits fabricated within a small piece of semiconductor material, usually silicon. Integrated circuits are also known as chips, microchips, or dies.

中央处理单元(Central Processing Unit,CPU)是执行计算机程序(又称为“计算机应用”或是“应用”)的指令的电子电路(例如“硬件”),其中电子电路是对数据执行包括算术运算、逻辑运算以及输入/输出操作等运算。A central processing unit (CPU) is an electronic circuit (such as "hardware") that executes instructions of a computer program (also called a "computer application" or "application"), where the electronic circuit is used to perform arithmetic operations on data , logical operations, and input/output operations.

微处理器是作为在单一集成电路的中央处理单元的电子元件。微处理器会接收数字数据以作为输入、根据从一存储器(无论是在芯片内或芯片外)所读取的指令来处理该数据,以及产生由指令所规定的运算结果来当作输出。通用的微处理器可以使用在桌上型计算机、移动电话或是平板计算机,并进行如计算、文书编辑、多媒体显示和浏览因特网的使用。微处理器亦可设置在嵌入式系统,以控制各种各样的装置,包括设备、移动电话、智能型手机和工业控制装置。A microprocessor is an electronic component that acts as the central processing unit on a single integrated circuit. A microprocessor receives digital data as input, processes the data according to instructions read from a memory (whether on-chip or off-chip), and produces as output the results of operations specified by the instructions. General-purpose microprocessors can be used in desktop computers, mobile phones, or tablet computers for computing, document editing, multimedia display, and Internet browsing. Microprocessors can also be provided in embedded systems to control a wide variety of devices including appliances, mobile phones, smartphones and industrial control devices.

多核心处理器又称为多核心微处理器,多核心处理器是具有制造在单一集成电路的多个中央处理单元的微处理器。A multi-core processor, also known as a multi-core microprocessor, is a microprocessor that has multiple central processing units fabricated on a single integrated circuit.

指令集架构(Instruction Set Architecture,ISA)或是指令集是关于编程的计算机架构的一部分,包括数据类型、指令、寄存器、定址模式、存储器架构、中断与异常管理以及输入/输出。指令集架构包括由特定中央处理单元所实施的一组运算码(opcode,即机器语言指令)以及本机命令的规格。Instruction Set Architecture (ISA) or instruction set is the part of computer architecture related to programming, including data types, instructions, registers, addressing modes, memory architecture, interrupt and exception management, and input/output. An instruction set architecture includes a set of operational codes (opcodes, or machine language instructions) implemented by a particular central processing unit, as well as the specification of native commands.

x86-相容微处理器是能执行计算机应用的微处理器,其中该计算机应用是根据x86指令集架构所编程。An x86-compatible microprocessor is a microprocessor capable of executing computer applications programmed according to the x86 instruction set architecture.

微码(microcode)是多个微指令。微指令(又称为“本机指令”)是由微处理器的子单元所执行的一种指令。示范性的子单元包括整数单元、浮点(floating point)单元、MMX单元以及载入/储存单元。例如,微指令可直接由精简指令集计算机(reduced instructionset computer,RISC)微处理器所执行。对复杂指令集计算机(complex instruction setcomputer,CISC)微处理器而言,例如x86-相容微处理器,x86指令会被转译(translate)成相关的微指令,以及相关的微指令是直接由CISC微处理器内的一个子单元或多个子单元所执行。Microcode (microcode) is a plurality of microinstructions. A microinstruction (also known as a "native instruction") is a type of instruction executed by a subunit of a microprocessor. Exemplary subunits include integer units, floating point units, MMX units, and load/store units. For example, microinstructions can be directly executed by a reduced instruction set computer (reduced instructionset computer, RISC) microprocessor. For complex instruction set computer (CISC) microprocessors, such as x86-compatible microprocessors, x86 instructions are translated into related microinstructions, and related microinstructions are directly read by CISC Executed by a subunit or subunits within a microprocessor.

熔丝是一种导电架构,通常安排成细丝。可藉由施加电压于细丝和/或流经细丝的电流而在选定的位置来烧断细丝。可使用现有制造技术来设置熔丝于晶粒上,以便在全部可编程的区域来配置细丝。在制造之后,将熔丝架构烧断(或未烧断),能提供设置在晶粒上的对应元件所需要的程序化。A fuse is a conductive structure, usually arranged as a thin wire. The filament can be blown at a selected location by applying a voltage to the filament and/or passing a current through the filament. Fuses can be placed on the die using existing fabrication techniques to configure filaments in all programmable areas. After fabrication, the fuse architecture is blown (or unblown) to provide the required programming of the corresponding elements disposed on the die.

有鉴于现有技术中关于在可信任的计算系统中保护关键程序以及数据,以及现今系统中的技术来检测和/或防止对这些程序与数据进行窜改,下面图1-图2将描述现今系统中的BIOS。随后,本发明将描述于图3-图7中。In view of the prior art about protecting critical programs and data in a trusted computing system, and the techniques in today's systems to detect and/or prevent tampering with these programs and data, the following Figures 1-2 will describe the current system in the BIOS. Subsequently, the present invention will be described in FIGS. 3-7.

参考图1,方框图100是显示设置在现今计算系统的主机板102(又称为系统板)的实体元件。主机板102的元件包括微处理器104(又称为中央处理单元、处理器、处理器芯片等)、易失性存储器106(又称为随机存取存储器,RAM)、芯片组108(又称为存储器控制器、存储器集线器、输入/输出集线器或桥芯片(例如北桥或是南侨))、通常被插入至插座112的基本输入输出系统(basic input/output system,BIOS)只读存储器(read only memory,ROM)110以及硬盘接口114。主机板102通常跟完成特定计算机配置所需的其他元件(例如电源供应器)被安装在计算机机壳内(例如桌上型计算机或笔记型计算机机壳、移动电话机壳、平板计算机机壳、机上盒机壳)。如本领域的技术人员所知,还有许多额外的元件和零件(例如时钟产生器、风扇、连接器、图形处理器等)被安装在主机板102上,而为了简化描述,这些额外的元件和零件将不显示。此外,图1所显示的元件104、106、114、108、110与112可以不同形式被设置在主机板102上,且值得注意的是,所显示的元件104、106、114、108、110与112是参照他们所公认的名称。在此实施例中,微处理器104是经由主机板102板上的实体接口(未显示)而耦接于元件106、114、108、110与112,通常为金属走线(trace)。值得注意的是,由于BIOS只读存储器110在工厂和/或领域中容易遭受到相当频繁的更换,因此将插座112设置在主机板102上。Referring to FIG. 1 , a block diagram 100 is shown showing the physical components of a motherboard 102 (also referred to as a system board) provided in a modern computing system. The components of motherboard 102 include microprocessor 104 (also called central processing unit, processor, processor chip, etc.), volatile memory 106 (also called random access memory, RAM), chipset 108 (also called A basic input/output system (BIOS) read-only memory (read-only memory) that is usually plugged into socket 112, which is a memory controller, memory hub, input/output hub, or bridge chip (such as a Northbridge or a Southbridge) only memory, ROM) 110 and hard disk interface 114. The motherboard 102 is usually installed in a computer case (such as a desktop or notebook computer case, a mobile phone case, a tablet computer case, set-top box enclosure). As known to those skilled in the art, there are many additional components and parts (such as clock generators, fans, connectors, graphics processors, etc.) installed on the motherboard 102, and for simplicity of description, these additional components and parts will not be displayed. In addition, the components 104, 106, 114, 108, 110 and 112 shown in FIG. 112 is in reference to their recognized names. In this embodiment, the microprocessor 104 is coupled to the components 106 , 114 , 108 , 110 and 112 via physical interfaces (not shown) on the motherboard 102 , usually metal traces. It should be noted that the socket 112 is disposed on the motherboard 102 because the BIOS ROM 110 is likely to be replaced quite frequently in the factory and/or in the field.

参考图2,方框图200是显示图1的元件104、106、114、108、110与112相互连接的示意图,用以说明计算系统如何配置基本输入/输出系统(Basic Input/Output System,BIOS)。方框图200是显示微处理器204,其中微处理器204包括芯片内(on-chip)高速快取存储器230。微处理器204是经由存储器总线216而耦接于低速随机存取存储器206。微处理器204亦经由系统总线218耦接于芯片组208,以及芯片组208分别经由硬盘接口总线224以及只读存储器总线220而耦接于硬盘接口214以及BIOS只读存储器(ROM)210。BIOS只读存储器210可经由BIOS编程总线222而耦接至可选的BIOS编程接口(未显示)。如本领域的技术人员所知,图2所显示的配置的变化可包括芯片组208,其亦提供了接口通过系统总线218而到随机存取存储器206,而不是直接存储器总线216,并可提供其他类型的总线(未显示),用于连接微处理器204到其他类型的周边接口(例如快速周边组件互连(PCI Express)、图形处理器)。Referring to FIG. 2 , a block diagram 200 is a schematic diagram showing interconnection of components 104 , 106 , 114 , 108 , 110 , and 112 in FIG. 1 , to illustrate how a computing system configures a Basic Input/Output System (BIOS). Block diagram 200 shows microprocessor 204 including on-chip high-speed cache memory 230 . The microprocessor 204 is coupled to the low-speed RAM 206 via the memory bus 216 . Microprocessor 204 is also coupled to chipset 208 via system bus 218 , and chipset 208 is coupled to hard disk interface 214 and BIOS ROM 210 via hard disk interface bus 224 and ROM bus 220 respectively. The BIOS ROM 210 can be coupled to an optional BIOS programming interface (not shown) via the BIOS programming bus 222 . As known to those skilled in the art, variations of the configuration shown in FIG. 2 may include chipset 208, which also provides an interface to random access memory 206 via system bus 218, rather than direct memory bus 216, and may provide Other types of buses (not shown) are used to connect the microprocessor 204 to other types of peripheral interfaces (eg, Peripheral Component Interconnect Express (PCI Express), graphics processors).

在操作上,如本领域的技术人员所知,应用程序234(例如微软是储存在硬盘(或是固态盘)上(未显示),其经由硬盘接口214所存取。因为硬盘是一个比较缓慢的装置,应用程序234在被执行之前,通常会被传送到外部的随机存取存储器206。然后,部分的应用程序234会被快取以供微处理器204在其内部的快取存储器230内执行。当应用程序234的指令要求微处理器204来执行系统层级的操作(例如储存文件至硬盘)时,来自操作系统软件232的指令(例如储存要求)会被微处理器204所执行,其中来自操作系统软件232的指令亦被从硬盘载入至随机存取存储器206并快取存入内部的快取存储器230。操作系统软件232提供了一种更通用的接口,能致能应用程序234来执行系统层级的功能,而不需要特定已知的系统设定。操作系统软件232亦考虑到微处理器204会同时执行多个应用程序234,并且还执行背景操作以有效管理随机存取存储器206的使用。Operationally, application programs 234 (such as Microsoft It is stored on the hard disk (or solid state disk) (not shown), which is accessed through the hard disk interface 214 . Because the hard disk is a relatively slow device, the application program 234 is usually transferred to the external RAM 206 before being executed. Then, part of the application program 234 is cached for execution by the microprocessor 204 in its internal cache memory 230 . When the instructions of the application program 234 require the microprocessor 204 to perform system-level operations (such as storing files to the hard disk), instructions from the operating system software 232 (such as storage requests) will be executed by the microprocessor 204, wherein from the operation The instructions of the system software 232 are also loaded from the hard disk into the random access memory 206 and cached into the internal cache memory 230 . Operating system software 232 provides a more general interface that enables application programs 234 to perform system-level functions without specific known system settings. The operating system software 232 also allows for the microprocessor 204 to execute multiple applications 234 concurrently, and also performs background operations to efficiently manage the use of the random access memory 206 .

然而,操作系统232事实上是在现今计算系统中软件的中间层级。为了实际连接至计算系统的硬件(例如硬盘),操作系统232必须执行储存在BIOS只读存储器210内的BIOS236的指令。BIOS236通常为许多的小程序,其是作为计算系统的最低层级的软件,并用以连接操作系统232至计算系统的硬件。相似于操作系统232,BIOS236会提供通用接口给计算机硬件,以允许操作系统232能存取硬件而不需要特定的接口设计。BIOS236可使系统设计者能改变计算系统的硬件(例如硬盘、芯片组208、随机存取存储器206),而不需要变更到操作系统232或是应用程序234。然而,当系统设定改变时,BIOS236必须被更新,而这就是为什么插座112和/或BIOS编程总线222必须设置在主机板102,其将使得BIOS只读存储器210能容易被更换或是重新被编程。在一些系统设定中,可经由BIOS只读存储器总线220直接重新编程BIOS只读存储器210。因此,为了对BIOS236进行变更,几乎全部现今的计算系统都有提供上面的架构。BIOS只读存储器210是一个独立的元件,以便容易进行重新编程或是更换。However, the operating system 232 is in fact the middle level of software in today's computing systems. In order to actually connect to the hardware of the computing system (eg hard disk), the operating system 232 must execute the instructions of the BIOS 236 stored in the BIOS ROM 210 . BIOS 236 is usually many small programs, which are the lowest level software of the computing system and are used to connect the operating system 232 to the hardware of the computing system. Similar to the operating system 232, the BIOS 236 provides a common interface to the computer hardware, allowing the operating system 232 to access the hardware without the need for a specific interface design. BIOS 236 enables system designers to change the hardware of the computing system (eg, hard disk, chipset 208 , RAM 206 ) without requiring changes to operating system 232 or application programs 234 . However, when the system settings are changed, the BIOS 236 must be updated, and this is why the socket 112 and/or the BIOS programming bus 222 must be provided on the motherboard 102, which will allow the BIOS ROM 210 to be easily replaced or rebuilt. programming. In some system configurations, the BIOS ROM 210 can be directly reprogrammed via the BIOS ROM bus 220 . Therefore, in order to make changes to BIOS236, almost all current computing systems provide the above framework. The BIOS ROM 210 is a separate component for easy reprogramming or replacement.

在全部的计算系统设定中,BIOS236是非常必要的特性,因为其指令可以致能应用程序234以及操作系统232来直接连接硬件。除了能提供连接至系统硬件之外,BIOS236会执行其他一些系统上必要的正常功能。例如,当系统开机后,BIOS236内的开机自我检测程序(power-on self test,POST)会被执行,以便进行硬件测试,并对系统的正确设定以及运行进行验证。BIOS236亦包括程序能识别并指派系统资源给新安装的装置。BIOS236还包括程序能从硬盘下载操作系统232至随机存取存储器206,并将系统控制传送给操作系统232。最后,BIOS236包括程序能检测以及防止计算系统的篡改(tampering)。The BIOS 236 is a very necessary feature in any computing system setup because its instructions enable the application programs 234 and the operating system 232 to directly interface with the hardware. In addition to providing connectivity to system hardware, BIOS236 performs other normal functions necessary on the system. For example, when the system is turned on, a power-on self-test (POST) program in the BIOS 236 will be executed to test the hardware and verify the correct setting and operation of the system. BIOS 236 also includes programs to identify and allocate system resources to newly installed devices. The BIOS 236 also includes a program to download the operating system 232 from the hard disk to the random access memory 206 and transfer system control to the operating system 232 . Finally, BIOS 236 includes programs to detect and prevent tampering of the computing system.

由于BIOS236在计算系统的安全性以及操作上是重要的,因此常常成为被非法侵入(hack)以及以其他未经授权的形式进行篡改的一个主要目标。例如,许多众所皆知的操作系统具有由设备制造商根据计算系统内的BIOS236所给定的规定,因此允许制造商能贩卖具有预先安装的操作系统的计算系统。通常,制造商会将标记(或“记号”)编程到BIOS236的特定位置,以及当操作系统开机时,会从BIOS236的特定位置读取出标记,以确认是在授权的系统上被开机。如果标记不存在或是不正确,则操作系统将无法开机。Because BIOS 236 is important to the security and operation of computing systems, it is often a prime target for hacking and other unauthorized tampering. For example, many well-known operating systems have specifications given by the device manufacturer according to the BIOS 236 within the computing system, thus allowing the manufacturer to sell the computing system with the operating system pre-installed. Typically, the manufacturer will program a flag (or "mark") into a specific location of the BIOS 236, and when the operating system is powered on, the flag will be read from the specific location of the BIOS 236 to confirm that it is booted on an authorized system. If the flag is absent or incorrect, the operating system will not boot.

上面的例子是编程现今BIOS236的许多不同类型的安全特性之一,且提供了BIOS安全功能的深入讨论。要注意的是,对系统设计者来说,系统上BIOS236是篡改的主要目标,因此BIOS236的保护是主要关心的事项。在上面的例子中,黑客编辑(或重新编程)BIOS236的目的是为了将计算系统呈现为授权系统给受保护的操作系统,或是修改BIOS,使得操作系统认为其是在授权系统上运作,然而实际上并不是。The above example is one of many different types of security features programmed into BIOS236 today, and provides an in-depth discussion of BIOS security features. It is to be noted that the BIOS 236 on the system is the main target of tampering for the system designer, so the protection of the BIOS 236 is a major concern. In the example above, the hacker edited (or reprogrammed) BIOS 236 to present the computing system as an authorized system to the protected operating system, or to modify the BIOS so that the operating system thought it was operating on an authorized system, however Actually not.

如先前所描述,大多数现今的BIOS只读存储器110为主机板102上的单独元件,且被安装在插座112,以便在当系统硬件改变而需要变更BIOS236时能方便进行更换。因此,在缺少其他安全架构的情况下,像先前所描述的非法侵入是有可能。As previously described, most current BIOS ROMs 110 are separate components on the motherboard 102 and are installed in socket 112 for easy replacement when system hardware changes require changes to the BIOS 236 . Thus, in the absence of other security architectures, hacking as previously described is possible.

因此,系统设计人员已经开发出许多不同的技术来对系统以及运作在系统上的应用程序234和/或操作系统232进行检测并防止窜改(tamper)。例如,在美国专利公开号2005/0015749中,Mittal提出藉由提供安全存储器部分以及包括加密技术的逻辑来对程序以及数据进行加密与解密,以保护软件不会被篡改。然而,BIOS是储存在系统软件的独立存储器空间,因此在移动BIOS至如微处理器的相同芯片的情况下,无法防止任何形式的窜改。于是,通过更换芯片能轻易对BIOS进行更新。Accordingly, system designers have developed many different techniques to detect and prevent tampering of the system and the applications 234 and/or operating system 232 running on the system. For example, in US Patent Publication No. 2005/0015749, Mittal proposes to encrypt and decrypt programs and data by providing a secure memory portion and logic including encryption technology to protect software from tampering. However, the BIOS is stored in a separate memory space for the system software, so any form of tampering cannot be prevented if the BIOS is moved to the same chip as a microprocessor. Therefore, the BIOS can be easily updated by replacing the chip.

在美国专利公告号7,831,839中,Hatakeyama揭示一种安全开机只读存储器以及处理器,其中安全开机只读存储器包括加密开机码(例如BIOS)而处理器包括硬件解密单元。当处理器开机时,已加密的BIOS会被读取至处理器的内部存储器,而解密单元会对BIOS进行解密以及认证。如果成功,则处理器会进入安全处理模式,且全部的BIOS要求之后会从内部存储器被执行。虽然Hatakeyama提供了经由自己内容的加密来保护BIOS的架构,为了能有效执行,必须使用芯片内本地存储器来储存已解密的BIOS。如本领域的技术人员所知,现今BIOS程序(包括系统设定数据)的大小为百万字节(megabytes)。因为提供可储存百万字节数据的芯片内本地存储器会增加微处理器的尺寸以及耗电量,其将降低元件的可靠度而增加全次的成本,因此Hatakeyama的BIOS保护方法是不利的。In US Patent Publication No. 7,831,839, Hatakeyama discloses a secure boot ROM and a processor, wherein the secure boot ROM includes an encrypted boot code (such as BIOS) and the processor includes a hardware decryption unit. When the processor is turned on, the encrypted BIOS will be read into the internal memory of the processor, and the decryption unit will decrypt and authenticate the BIOS. If successful, the processor enters secure processing mode, and all BIOS requirements are then executed from internal memory. Although Hatakeyama provides an architecture to protect the BIOS through encryption of its own content, in order to be effective, on-chip local memory must be used to store the decrypted BIOS. As known by those skilled in the art, the size of the current BIOS program (including system setting data) is megabytes. Hatakeyama's BIOS protection method is disadvantageous because providing on-chip local memory that can store megabytes of data increases the size and power consumption of the microprocessor, which reduces device reliability and increases overall cost.

已经开发出来的其他技术是对全部或一部份的BIOS内容进行加密,当每次进行BIOS要求时,需进行解密。因此,这样的技术会降低了计算系统的性能,特别是在开机时,因为即使使用了芯片内的加密硬件,解密本质上还是缓慢的过程。因此,从性能上来看,加密BIOS内容是不想要的。Other techniques have been developed to encrypt all or part of the BIOS content and decrypt it each time a BIOS request is made. As a result, such techniques degrade computing system performance, especially when powered on, because decryption is an inherently slow process, even with on-chip encryption hardware used. Therefore, encrypting the BIOS contents is undesirable from a performance point of view.

因此,所有上述技术(标记、划分安全存储器、芯片内本地BIOS存储器、加密BIOS内容)不容易对系统BIOS只读存储器进行存取,且同时会降低性能影响。因此,本发明提供新颖的技术来应用于BIOS只读存储器,以克服这些限制,其中这些安装在插座的BIOS只读存储器容易被升级。接着,提供未加密(例如可读文本)的BIOS内容(例如指令和/或设定数据)。然后,在开机后,能检测初始的窜改,而不会明显降低系统的性能。本发明将描述于图3-图7的图中。Therefore, all the above techniques (tagging, partitioning secure memory, on-chip local BIOS memory, encrypting BIOS content) do not provide easy access to the system BIOS ROM and at the same time have a reduced performance impact. Therefore, the present invention provides novel techniques applied to BIOS ROMs to overcome these limitations, wherein these socket-mounted BIOS ROMs can be easily upgraded. Next, unencrypted (eg readable text) BIOS content (eg instructions and/or setting data) is provided. Then, after power-on, initial tampering can be detected without significantly degrading the performance of the system. The invention will be described in the diagrams of Figures 3-7.

参考图3,图3是显示根据本发明一实施例所述的架构的方框图300,用以保护计算系统的BIOS。方框图300是描述设置在单一芯片并被封装以安装在主机板上的微处理器(例如处理器、CPU等),如先前所描述。在一实施例中,微处理器是相容于x86架构,并且能执行x86指令集的全部指令。在另一实施例中,微处理器是设置在单一芯片的多核心处理器。在另一实施例中,微处理器是虚拟处理核心,其表示能共同使用处理器的逻辑部分内操作系统的实体处理器。为了描述本发明,微处理器的必要元件将描述于后,其中如本领域的技术人员所知的许多其他元件(例如载入/储存逻辑、快取存储器、排序逻辑等)将简化。Referring to FIG. 3 , FIG. 3 is a block diagram 300 illustrating an architecture for protecting a BIOS of a computing system according to an embodiment of the present invention. Block diagram 300 depicts a microprocessor (eg, processor, CPU, etc.) disposed on a single chip and packaged for mounting on a motherboard, as previously described. In one embodiment, the microprocessor is compatible with the x86 architecture and can execute all instructions of the x86 instruction set. In another embodiment, the microprocessor is a multi-core processor disposed on a single chip. In another embodiment, the microprocessor is a virtual processing core, which represents a physical processor that can share an operating system within a logical portion of the processor. In order to describe the present invention, the essential elements of a microprocessor will be described below, where many other elements (such as load/store logic, cache memory, sort logic, etc.) as known to those skilled in the art will be simplified.

微处理器包括提取(fetch)逻辑302,其经由总线324而耦接于转译器(translator)304。转译器304经由总线326而耦接于执行逻辑306。执行逻辑306包括密码机(crypto)/散列单元(hash unit)308,其经由总线322而耦接于密钥储存器310。微处理器亦包括总线接口318,用以连接微处理器至芯片组。总线接口318经由总线328而耦接于重置控制器312。重置控制器312会接收重置信号RESET,并产生关机信号SHUTDOWN。重置控制器312包括窜改检测器314,其中窜改检测器314经由总线NOBOOT而耦接于开机载入器316。重置控制器312经由窜改总线TBUS而耦接于执行逻辑306。The microprocessor includes fetch logic 302 coupled to a translator 304 via a bus 324 . Translator 304 is coupled to execution logic 306 via bus 326 . Execution logic 306 includes a crypto/hash unit 308 coupled to key storage 310 via bus 322 . The microprocessor also includes a bus interface 318 for connecting the microprocessor to the chipset. The bus interface 318 is coupled to the reset controller 312 via the bus 328 . The reset controller 312 receives the reset signal RESET and generates a shutdown signal SHUTDOWN. The reset controller 312 includes a tamper detector 314 , wherein the tamper detector 314 is coupled to the boot loader 316 via the bus NOBOOT. Reset controller 312 is coupled to execution logic 306 via tamper bus TBUS.

在操作上,提取逻辑302用以提取程序指令(来自应用程序、操作系统及存储器中的所快取的BIOS)来执行。程序指令会经由总线324而提供至转译器304。转译器304会将程序指令转译为一个或多个微指令,其中微指令会由执行逻辑306内的一个或多个元件执行,以便执行程序指令所指定的操作。微指令(又称为微码或是固件)是微处理器所特有的,且无法在封装层级(package level)被存取。In operation, the fetch logic 302 is used to fetch program instructions (from applications, operating system, and cached BIOS in memory) for execution. Program instructions are provided to the translator 304 via the bus 324 . The translator 304 translates the program instructions into one or more microinstructions, wherein the microinstructions are executed by one or more elements in the execution logic 306 to perform the operations specified by the program instructions. Microinstructions (also called microcode or firmware) are unique to the microprocessor and cannot be accessed at the package level.

在正常操作的情况下,在开机之后,BIOS指令以及设定数据会被纪录且快取于虚拟存储器,并由提取逻辑302进行提取以供执行。然而,微处理器的正常操作是发生在成功的重置以及开机顺序之后。重置控制器312接收重置信号RESET,并指示执行逻辑306来执行微码,以执行自我测试以及启动系统。为了检测BIOS的窜改以及防止设置有微处理器的系统的未被授权的操作,在启动之前,重置控制器312会经由总线接口318来提取BIOS只读存储器(未显示)的全部内容,并经由窜改总线TBUS来提供所提取的内容至执行逻辑306。在一实施例中,BIOS只读存储器的内容包括数字签章(数字签章)(又称为散列(hash)或是讯息文摘(digest)),其储存在BIOS只读存储器的特定位置内。如本领域的技术人员所知,根据所使用的特定散列运算,对应于BIOS只读存储器(尺寸为4百万字节)的散列的数字签章在尺寸上是非常小(例如256位),并且由BIOS只读存储器的特定内容所独有。于是,假如只读存储器的内容被改变,则被改变的内容的散列将导致不同的数字签章。Under normal operation, after booting, BIOS commands and setting data are recorded and cached in the virtual memory, and fetched by the fetch logic 302 for execution. However, normal operation of the microprocessor occurs after a successful reset and power-on sequence. The reset controller 312 receives the reset signal RESET and instructs the execution logic 306 to execute the microcode to perform self-test and boot the system. In order to detect tampering of the BIOS and prevent unauthorized operation of the microprocessor-equipped system, before booting, the reset controller 312 will extract the entire contents of the BIOS ROM (not shown) via the bus interface 318, and The extracted content is provided to execution logic 306 via tamper bus TBUS. In one embodiment, the content of the BIOS ROM includes a digital signature (digital signature) (also known as a hash (hash) or message digest (digest)), which is stored in a specific location in the BIOS ROM . As known to those skilled in the art, the digital signature corresponding to the hash of the BIOS ROM (4 megabytes in size) is very small in size (e.g. 256 bits) depending on the particular hashing operation used. ), and are unique to the specific contents of the BIOS ROM. Thus, if the contents of the ROM were changed, the hash of the changed contents would result in a different digital signature.

在储存至BIOS只读存储器之前,微处理器的制造商会使用密钥(cryptographickey)来对数字签章进行加密,其中密钥是由BIOS制造商所提供。在微处理器的制造过程中,密钥会被编程至密钥储存器310,之后会无法经由程序指令进行存取。在一实施例中,密钥是微处理器所独有的。在一实施例中,密钥储存器310的内容仅由密码机/散列单元308在窜改检测微码的控制下进行存取。窜改检测微码会指示重置控制器312来提取BIOS只读存储器的内容,其中内容包括已加密的数字签章,以及所提取的内容会经由窜改总线TBUS而提供至执行逻辑306。同时地,窜改检测微码会指示密码机/散列单元308来根据散列演算法而执行BIOS的散列,其中BIOS制造商是使用散列演算法来产生数字签章。在一实施例中,散列演算法可以是散列(Secure Hash)演算法(例如SHA-0、SHA-1等)。其他实施例是使用任何已知的讯息摘要(message digest)演算法。窜改检测微码亦会指示密码机/散列单元308来使用储存在密钥储存器310的密钥,来对从BIOS只读存储器提取出来的已加密数字签章进行解密。在一实施例中,密码机/散列单元308是使用数字加密标准(Digital EncryptionStandard,DES)演算法来对密钥进行解密。在另一实施例中,密码机/散列单元308是使用进阶加密标准(Advanced Encryption Standard,AES)演算法。其他实施例是使用任何已知的密码演算法。密码机/散列单元308所产生的数字签章以及已解密的数字签章会经由窜改总线TBUS提供至窜改检测器314,其中已解密的数字签章的加密版本是储存在BIOS只读存储器的特定位置。Before storing in the BIOS ROM, the manufacturer of the microprocessor encrypts the digital signature with a cryptographic key provided by the BIOS manufacturer. During the manufacturing process of the microprocessor, the key is programmed into the key storage 310 and cannot be accessed later by program instructions. In one embodiment, the key is unique to the microprocessor. In one embodiment, the contents of the key store 310 are only accessed by the cipher/hash unit 308 under the control of the tamper detection microcode. The tamper detection microcode instructs the reset controller 312 to extract the contents of the BIOS ROM, where the contents include the encrypted digital signature, and the extracted contents are provided to the execution logic 306 via the tamper bus TBUS. Simultaneously, the tamper detection microcode instructs the cipher/hash unit 308 to perform hashing of the BIOS according to the hashing algorithm used by the BIOS manufacturer to generate the digital signature. In an embodiment, the hash algorithm may be a secure hash algorithm (such as SHA-0, SHA-1, etc.). Other embodiments use any known message digest algorithm. The tamper detection microcode also instructs the cipher/hash unit 308 to use the key stored in the key storage 310 to decrypt the encrypted digital signature extracted from the BIOS ROM. In one embodiment, the cipher/hash unit 308 uses a Digital Encryption Standard (DES) algorithm to decrypt the key. In another embodiment, the cipher/hash unit 308 uses an Advanced Encryption Standard (AES) algorithm. Other embodiments use any known cryptographic algorithm. The digital signature generated by the cipher/hash unit 308 and the decrypted digital signature will be provided to the tamper detector 314 via the tamper bus TBUS, wherein the encrypted version of the decrypted digital signature is stored in the BIOS ROM specific location.

窜改检测器314会对两数字签章进行比较。如果两数字签章是相同的,则窜改检测器314会指示开机载入器316可经由总线NOBOOT,来开始进行微处理器的正常启动顺序(boot sequence)。如果两数字签章是不同的,则窜改检测器314会提供关机信号SHUTDOWN,并指示开机载入器316来停止启动顺序。关机信号SHUTDOWN会指示微处理器中剩下的元件来切断电源或是进入防止(preclude)正常运行的模式。The tamper detector 314 compares the two digital signatures. If the two digital signatures are the same, the tamper detector 314 instructs the boot loader 316 to begin the normal boot sequence of the microprocessor via the NOBOOT bus. If the two digital signatures are different, the tamper detector 314 provides a shutdown signal SHUTDOWN and instructs the bootloader 316 to stop the boot sequence. The shutdown signal SHUTDOWN instructs the remaining components in the microprocessor to cut off power or enter a mode that precludes normal operation.

根据本发明的实施例,每次微处理器被重置,仅需要对储存在BIOS只读存储器的特定位置的加密讯息文摘进行解密,即对256位串进行解密,而不是4百万字节串。此外,本发明的实施例允许使用储存在实体可存取的配置上的可读文本(plaintext)BIOS指令/数据,如图1-图2所描述的配置。BIOS容易被更新,而系统性能不会降低。不需要使用到用来储存已解密BIOS的昂贵的内部本地存储器。此外,储存在BIOS只读存储器内并用来对讯息文摘加密的密钥无法由程序指令所存取。密钥仅能由密码机/散列单元308直接存取。According to an embodiment of the present invention, each time the microprocessor is reset, only the encrypted message digest stored in a specific location of the BIOS ROM needs to be decrypted, i.e., a 256-bit string instead of 4 million bytes string. Additionally, embodiments of the present invention allow the use of plaintext BIOS instructions/data stored in physically accessible configurations, such as the configurations depicted in FIGS. 1-2 . The BIOS can be easily updated without degrading system performance. There is no need to use expensive internal local memory for storing decrypted BIOS. In addition, the key stored in the BIOS ROM and used to encrypt the message digest cannot be accessed by program instructions. The key is directly accessible only by the cipher/hash unit 308 .

参考图4,图4是显示根据本发明一实施例所述的周期性架构的方框图400,用以保护计算系统的BIOS。图3的架构是在启动时对系统的BIOS进行保护,但是当系统正常操作时,BIOS有可能会被窜改。因此,在系统的操作期间与上电时,需要能保护BIOS不被非法侵入。因此,提出了周期性的架构来完成这个目的。Referring to FIG. 4 , FIG. 4 is a block diagram 400 illustrating a periodic architecture for protecting a BIOS of a computing system according to an embodiment of the present invention. The architecture in FIG. 3 is to protect the BIOS of the system at startup, but when the system is operating normally, the BIOS may be tampered with. Therefore, it is necessary to be able to protect the BIOS from illegal intrusion during the operation of the system and when the system is powered on. Therefore, a periodic architecture is proposed to accomplish this purpose.

方框图400是描述设置在单一芯片并被封装以安装在主机板上的微处理器,如先前所描述。在一实施例中,微处理器是相容于x86架构,并且能执行x86指令集的全部指令。在另一实施例中,微处理器是设置在单一芯片的多核心处理器。在另一实施例中,微处理器是虚拟处理核心,其表示能共同使用处理器的逻辑部分内操作系统的实体处理器。为了描述本发明,微处理器的必要元件将描述于后,其中如本领域的技术人员所知的许多其他元件(例如载入/储存逻辑、快取存储器、排序逻辑等)将简化。Block diagram 400 depicts a microprocessor disposed on a single chip and packaged for mounting on a motherboard, as previously described. In one embodiment, the microprocessor is compatible with the x86 architecture and can execute all instructions of the x86 instruction set. In another embodiment, the microprocessor is a multi-core processor disposed on a single chip. In another embodiment, the microprocessor is a virtual processing core, which represents a physical processor that can share an operating system within a logical portion of the processor. In order to describe the present invention, the essential elements of a microprocessor will be described below, where many other elements (such as load/store logic, cache memory, sort logic, etc.) as known to those skilled in the art will be simplified.

微处理器包括提取逻辑402,其是经由总线424而耦接于转译器404。转译器404是经由总线426而耦接于执行逻辑406。执行逻辑406包括密码机/散列单元408,其是经由总线422而耦接于密钥储存器410。执行逻辑406亦包括乱数产生器430。微处理器亦包括总线接口418,用以连接微处理器至芯片组。总线接口418经由总线428而耦接于重置控制器412。重置控制器412会接收重置信号RESET,并产生关机信号SHUTDOWN。重置控制器412包括窜改检测器414,其中窜改检测器414经由总线NOBOOT而耦接于开机载入器416。窜改检测器414包括窜改计时器432。重置控制器412经由窜改总线TBUS以及乱数总线RBUS而耦接于执行逻辑406。The microprocessor includes fetch logic 402 coupled to translator 404 via bus 424 . Translator 404 is coupled to execution logic 406 via bus 426 . Execution logic 406 includes a cipher/hash unit 408 coupled to key storage 410 via bus 422 . The execution logic 406 also includes a random number generator 430 . The microprocessor also includes a bus interface 418 for connecting the microprocessor to the chipset. The bus interface 418 is coupled to the reset controller 412 via the bus 428 . The reset controller 412 receives the reset signal RESET and generates a shutdown signal SHUTDOWN. The reset controller 412 includes a tamper detector 414 , wherein the tamper detector 414 is coupled to the boot loader 416 via the bus NOBOOT. Tamper detector 414 includes a tamper timer 432 . The reset controller 412 is coupled to the execution logic 406 via the tamper bus TBUS and the random number bus RBUS.

在操作上,图4的架构内元件所执行的方式大体上相似于图3的架构内的相同名字元件。然而,除了在重置开机顺序的期间检测BIOS的窜改,图4的架构亦包括能周期性地检查BIOS的窜改检测微码以及元件,以判断计算系统在操作时BIOS是否被窜改。对密钥而言,窜改计时器432无法被程序指令所存取,而是专门由窜改检测器414以及窜改检测微码所存取。在一实施例中,窜改计时器432在一时间间隔中对系统的正常操作进行中断,其中时间间隔是由窜改检测微码所设定。在一实施例中,时间间隔为1毫秒,其是足够时间来检测在被非法入侵的BIOS只读存储器中欲取代BIOS只读存储器的实体攻击。1毫秒的时间间隔亦足够来检测欲对现有的BIOS只读存储器进行重新编程的攻击。当时间间隔被中断时,重置控制器412会经由总线接口418来提取BIOS只读存储器(未显示)的全部内容,并经由窜改总线TBUS而提供所提取的内容至执行逻辑406。窜改检测微码会指示重置控制器412来提取BIOS只读存储器的内容,其中内容包括已加密的数字签章,以及所提取的内容会经由窜改总线TBUS而提供至执行逻辑406。同时地,窜改检测微码会指示密码机/散列单元408来根据散列演算法而执行BIOS的散列,其中BIOS制造商是使用散列演算法来产生数字签章。窜改检测微码亦指示密码机/散列单元408可使用储存在密钥储存器410的密钥来对从BIOS只读存储器提取出来的已加密数字签章进行解密。密码机/散列单元408所产生的数字签章以及已解密的数字签章会经由窜改总线TBUS提供至窜改检测器414,其中已解密的数字签章的加密版本是储存在BIOS只读存储器的特定位置。Operationally, elements within the architecture of FIG. 4 perform in a manner substantially similar to elements of the same name within the architecture of FIG. 3 . However, in addition to detecting BIOS tampering during the reset boot sequence, the architecture of FIG. 4 also includes periodically checking the BIOS tamper detection microcode and components to determine whether the BIOS has been tampered with during operation of the computing system. For keys, the tamper timer 432 is not accessible by program instructions, but is exclusively accessed by the tamper detector 414 and the tamper detection microcode. In one embodiment, the tamper timer 432 interrupts normal operation of the system for a time interval set by the tamper detection microcode. In one embodiment, the time interval is 1 millisecond, which is enough time to detect physical attacks that intend to replace the BIOS ROM in the hacked BIOS ROM. A time interval of 1 millisecond is also sufficient to detect an attack intended to reprogram an existing BIOS ROM. When the interval is interrupted, the reset controller 412 fetches the entire contents of the BIOS ROM (not shown) via the bus interface 418 and provides the fetched contents to the execution logic 406 via the tamper bus TBUS. The tamper detection microcode instructs the reset controller 412 to extract the contents of the BIOS ROM including the encrypted digital signature, and the extracted contents are provided to the execution logic 406 via the tamper bus TBUS. Simultaneously, the tamper detection microcode instructs the cipher/hash unit 408 to perform hashing of the BIOS according to the hashing algorithm used by the BIOS manufacturer to generate the digital signature. The tamper detection microcode also instructs the cipher/hash unit 408 to use the key stored in the key storage 410 to decrypt the encrypted digital signature extracted from the BIOS ROM. The digital signature generated by the cipher/hash unit 408 and the decrypted digital signature will be provided to the tamper detector 414 via the tamper bus TBUS, wherein the encrypted version of the decrypted digital signature is stored in the BIOS ROM specific location.

窜改检测器414会对两数字签章进行比较。如果两数字签章是相同的,则窜改检测器414会在计时器中断发生时的时间点来恢复微处理器的控制。如果两数字签章是不同的,则窜改检测器414会提供关机信号SHUTDOWN。关机信号SHUTDOWN会指示微处理器中剩下的元件来切断电源或是进入防止正常运行的模式。The tamper detector 414 compares the two digital signatures. If the two digital signatures are the same, the tamper detector 414 restores control of the microprocessor at the point in time when the timer interrupt occurred. If the two digital signatures are different, the tamper detector 414 provides a shutdown signal SHUTDOWN. The shutdown signal SHUTDOWN instructs the remaining components in the microprocessor to either cut off power or enter a mode that prevents normal operation.

在另一个实施例中,窜改计时器432不是使用固定的时间间隔。在完成周期性的BIOS非法入侵的检查,窜改检测微码指示乱数产生器430来产生乱数,其输入至窜改计时器432,以产生下一次BIOS非法入侵检查的下一个时间间隔。在此方式中,执行入侵检查的时间是无法预期与预料的。In another embodiment, the tamper timer 432 does not use a fixed time interval. After completing the periodic BIOS tampering check, the tamper detection microcode instructs the random number generator 430 to generate a random number, which is input to the tampering timer 432 to generate the next time interval for the next BIOS tampering check. In this approach, the timing of performing intrusion checks is unpredictable and unpredictable.

相似于图3的架构,根据本发明的实施例,图4的周期性架构执行操作仅需要对储存在BIOS只读存储器的特定位置的加密讯息文摘进行解密,即对256位串进行解密,而不是4百万字节串。此外,在系统的正常操作期间,周期性的架构会保护安全系统远离BIOS的非法入侵。Similar to the architecture of FIG. 3, according to an embodiment of the present invention, the periodic architecture of FIG. 4 only needs to decrypt the encrypted message digest stored in a specific location of the BIOS ROM, that is, decrypt the 256-bit string, and Not a 4 megabyte string. In addition, during normal operation of the system, the periodic architecture protects the security system from illegal intrusion of the BIOS.

参考图5,图5是显示根据本发明一实施例所述的基于事件(event-based)架构的方框图500,用以保护计算系统的BIOS。当计算系统在正常操作时,图4的架构可当作另一实施例来保护系统BIOS,但是其中一个是基于事件的发生,而非时间的流逝。这些事件可包括(但并非用以限定):硬盘存取(或是其他形式的输入/输出存取)、改变至虚拟存储器映射(mapping)(此架构可使用在虚拟处理系统的系统设定)、改变至速度以及通常发生在现今计算系统的其他种类的事件。因此,提供基于事件架构来完成这个目的。Referring to FIG. 5 , FIG. 5 is a block diagram 500 illustrating an event-based architecture for protecting a BIOS of a computing system according to an embodiment of the present invention. The architecture of FIG. 4 can be used as another embodiment to protect the system BIOS when the computing system is operating normally, but one based on the occurrence of events rather than the passage of time. These events may include (but are not limited to): hard disk access (or other forms of I/O access), changes to virtual memory mapping (mapping) (this framework can be used in the system settings of the virtual processing system) , changes to velocity, and other kinds of events that commonly occur in today's computing systems. Therefore, an event-based architecture is provided to accomplish this purpose.

方框图500是描述设置在单一芯片并被封装以安装在主机板上的微处理器,如先前所描述。在一实施例中,微处理器是相容于x86架构,并且能执行x86指令集的全部指令。在另一实施例中,微处理器是设置在单一芯片的多核心处理器。在另一实施例中,微处理器是虚拟处理核心,其表示能共同使用处理器的逻辑部分内操作系统的实体处理器。为了描述本发明,微处理器的必要元件将描述于后,其中如本领域的技术人员所知的许多其他元件(例如载入/储存逻辑、快取存储器、排序逻辑等)将简化。Block diagram 500 depicts a microprocessor disposed on a single chip and packaged for mounting on a motherboard, as previously described. In one embodiment, the microprocessor is compatible with the x86 architecture and can execute all instructions of the x86 instruction set. In another embodiment, the microprocessor is a multi-core processor disposed on a single chip. In another embodiment, the microprocessor is a virtual processing core, which represents a physical processor that can share an operating system within a logical portion of the processor. In order to describe the present invention, the essential elements of a microprocessor will be described below, where many other elements (such as load/store logic, cache memory, sort logic, etc.) as known to those skilled in the art will be simplified.

微处理器包括提取逻辑502,其中提取逻辑502经由总线524而耦接于转译器504。转译器504是经由总线526而耦接于执行逻辑506。执行逻辑506包括密码机/散列单元508,其是经由总线522而耦接于密钥储存器510。执行逻辑506亦包括乱数产生器530。微处理器亦包括总线接口518,用以连接微处理器至芯片组。总线接口518是经由总线528而耦接于重置控制器512。重置控制器512接收重置信号RESET,并产生关机信号SHUTDOWN。重置控制器512包括窜改检测器514,其是经由总线NOBOOT而耦接于开机载入器516。窜改检测器514包括事件检测器542,其接收输入/输出存取信号I/O ACCESS、虚拟存储器映射改变信号VMMAP、处理器速度改变信号SPEED、以及其他事件信号OTHER。重置控制器512是经由窜改总线TBUS以及乱数总线RBUS而耦接于执行逻辑506。The microprocessor includes fetch logic 502 , wherein fetch logic 502 is coupled to translator 504 via bus 524 . Translator 504 is coupled to execution logic 506 via bus 526 . Execution logic 506 includes a cipher/hash unit 508 coupled to key storage 510 via bus 522 . The execution logic 506 also includes a random number generator 530 . The microprocessor also includes a bus interface 518 for connecting the microprocessor to the chipset. The bus interface 518 is coupled to the reset controller 512 via the bus 528 . The reset controller 512 receives the reset signal RESET and generates a shutdown signal SHUTDOWN. The reset controller 512 includes a tamper detector 514 coupled to a boot loader 516 via a bus NOBOOT. The tamper detector 514 includes an event detector 542 that receives an input/output access signal I/O ACCESS, a virtual memory map change signal VMMAP, a processor speed change signal SPEED, and other event signals OTHER. The reset controller 512 is coupled to the execution logic 506 via the tamper bus TBUS and the random number bus RBUS.

在操作上,图5的架构内元件所执行的方式大体上相似于图3与图4的架构内的相同名字元件。然而,除了在重置开机顺序的期间检测BIOS的窜改,图4的架构亦包括能检查BIOS的窜改检测微码以及元件,以判断当计算系统在操作时BIOS是否被窜改。BIOS的有效性检查是根据事件的发生,而不是根据时间。申请人注意到在现今计算系统中,微处理器会执行一些规律地发生的事件,例如I/O存取(即硬盘、快速周边组件互连(PCI Express))、核心时钟速度改变、操作系统呼叫、系统状态改变等。因此,事件检测器542所接收的信号仅是个例子,并非用以限定方框图500中能用来触发BIOS检查的事件的类型。Operationally, elements within the architecture of FIG. 5 perform in a manner substantially similar to elements of the same name within the architectures of FIGS. 3 and 4 . However, in addition to detecting BIOS tampering during the reset boot sequence, the architecture of FIG. 4 also includes tamper detection microcode and components capable of checking the BIOS to determine if the BIOS has been tampered with while the computing system is in operation. The validity check of BIOS is based on the occurrence of events, not based on time. Applicant notes that in today's computing systems, microprocessors perform regularly occurring events such as I/O accesses (i.e. hard disks, Peripheral Component Interconnect Express (PCI Express)), core clock speed changes, operating system Calls, system state changes, etc. Therefore, the signals received by the event detector 542 are only examples, and are not intended to limit the types of events that can be used to trigger the BIOS check in the block diagram 500 .

相似于密钥,无法经由执行程序指令来对事件检测器542进行存取,而事件检测器542仅能由窜改检测器514以及窜改检测微码所存取。在一实施例中,当上述事件的一者发生时,事件检测器542会中断系统的正常操作,即信号I/O ACCESS、VMMAP、SPEED与OTHER的一者存在时。在另一实施例中,当多个上述事件的一者发生时,事件检测器542会中断系统的正常操作。在另一实施例中,当多个事件发生时(例如I/O存取以及核心时钟速度改变),事件检测器542会中断系统的正常操作。所选择的事件以及发生的次数是由窜改检测微码所设定。当中断发生时,重置控制器512会经由总线接口518来提取BIOS只读存储器(未显示)的全部内容,并经由窜改总线TBUS而提供所提取的内容至执行逻辑506。窜改检测微码会指示重置控制器512来提取BIOS只读存储器的内容,其中内容包括已加密的数字签章,以及所提取的内容会经由窜改总线TBUS而提供至执行逻辑506。窜改检测微码会指示密码机/散列单元508来根据散列演算法而执行BIOS的散列,其中BIOS制造商是使用散列演算法来产生数字签章。窜改检测微码亦指示密码机/散列单元508,使用储存在密钥储存器510的密钥来对从BIOS只读存储器提取出来的已加密数字签章进行解密。密码机/散列单元508所产生的数字签章以及已解密的数字签章会经由窜改总线TBUS提供至窜改检测器514,其中已解密的数字签章的加密版本是储存在BIOS只读存储器的特定位置。Similar to a key, the event detector 542 cannot be accessed by executing program instructions, and the event detector 542 is only accessible by the tamper detector 514 and the tamper detection microcode. In one embodiment, the event detector 542 interrupts the normal operation of the system when one of the above events occurs, ie, one of the signals I/O ACCESS, VMMAP, SPEED and OTHER is present. In another embodiment, the event detector 542 interrupts normal operation of the system when one of the above events occurs. In another embodiment, the event detector 542 interrupts the normal operation of the system when multiple events occur (eg, I/O access and core clock speed change). The selected event and the number of occurrences are set by the tamper detection microcode. When an interrupt occurs, the reset controller 512 fetches the entire contents of the BIOS ROM (not shown) via the bus interface 518 and provides the fetched contents to the execution logic 506 via the tamper bus TBUS. The tamper detection microcode instructs the reset controller 512 to extract the contents of the BIOS ROM, including the encrypted digital signature, and the extracted contents are provided to the execution logic 506 via the tamper bus TBUS. The tamper detection microcode instructs the cipher/hash unit 508 to perform hashing of the BIOS according to a hashing algorithm used by the BIOS manufacturer to generate the digital signature. The tamper detection microcode also instructs the cipher/hash unit 508 to use the key stored in the key storage 510 to decrypt the encrypted digital signature extracted from the BIOS ROM. The digital signature generated by the cipher/hash unit 508 and the decrypted digital signature will be provided to the tamper detector 514 via the tamper bus TBUS, wherein the encrypted version of the decrypted digital signature is stored in the BIOS ROM specific location.

窜改检测器514会对两数字签章进行比较。如果两数字签章是相同的,则窜改检测器514会在事件触发中断发生时的时间点来恢复微处理器的控制。如果两数字签章是不同的,则窜改检测器514会提供关机信号SHUTDOWN。关机信号SHUTDOWN会指示微处理器中剩下的元件来切断电源或是进入防止正常运行的模式。The tamper detector 514 compares the two digital signatures. If the two digital signatures are the same, the tamper detector 514 restores control of the microprocessor at the point in time when the event-triggered interrupt occurs. If the two digital signatures are different, tamper detector 514 provides a shutdown signal SHUTDOWN. The shutdown signal SHUTDOWN instructs the remaining components in the microprocessor to either cut off power or enter a mode that prevents normal operation.

在另一实施例中,在完成BIOS非法侵入检查时,窜改检测微码会指示乱数产生器530来产生乱数,而不是使用事件发生的次数。乱数会被输入至事件检测器542,以便设定发生在执行下一次BIOS非法侵入检查设定之前的接续事件的数量。在此实施例中,触发非法侵入检查的事件的数量无法经由微处理器所执行的秘密应用来预测及预期。在另一实施例中,乱数是用来改变触发下一次BIOS非法侵入检查的事件的类型。In another embodiment, the tamper detection microcode instructs the random number generator 530 to generate a random number instead of using the number of event occurrences when completing the BIOS intrusion check. The random number is input to the event detector 542 to set the number of subsequent events that occur before the next BIOS intrusion check is performed. In this embodiment, the number of events that trigger a trespass check cannot be predicted and anticipated through the secret application executed by the microprocessor. In another embodiment, the nonce is used to change the type of event that triggers the next BIOS hack check.

相似于图3与图4的架构,根据本发明的实施例,图5的事件触发架构执行操作仅需要对储存在BIOS只读存储器的特定位置的加密讯息文摘进行解密,即对256位串(即已加密的讯息文摘)进行解密,而不是4百万字节串(即全部的BIOS)。此外,在系统的正常操作期间,事件触发架构会保护安全系统远离BIOS的非法入侵,其中触发非法入侵检查的事件的数量以及类型无法被决定以及强迫。Similar to the architectures of FIG. 3 and FIG. 4 , according to an embodiment of the present invention, the event-triggered architecture of FIG. 5 only needs to decrypt the encrypted message digest stored in a specific location of the BIOS ROM, that is, the 256-bit string ( i.e. the encrypted message digest) to decrypt instead of the 4 megabyte string (i.e. the entire BIOS). Furthermore, during normal operation of the system, the event-triggered architecture protects the security system from BIOS intrusions, wherein the number and types of events that trigger intrusion checks cannot be determined and forced.

参考图6,图6是显示根据本发明一实施例所述的基于分区(partition-based)架构的方框图600,用以保护计算系统的BIOS。当计算系统在正常操作时,图6的架构可当作另一实施例来保护系统BIOS,但是其中一个是当窜改计时器中断(例如图3的实施例)或是系统事件所触发(例如图4的实施例)时,仅对BIOS的子集(subset)进行检查。因此,基于分区机制提供了一种用于性能是相当关键的设定,因为在每个触发点仅有一部份的BIOS被检查,于是对系统性能的影响较少。Referring to FIG. 6 , FIG. 6 is a block diagram 600 illustrating a partition-based architecture for protecting a BIOS of a computing system according to an embodiment of the present invention. The architecture of FIG. 6 can be used as another embodiment to protect the system BIOS when the computing system is operating normally, but one is when a tamper timer interrupt (such as the embodiment of FIG. 3 ) or triggered by a system event (such as the embodiment of FIG. 4), only a subset of the BIOS is checked. Therefore, the partition-based mechanism provides a very critical setting for performance, because only a part of the BIOS is checked at each trigger point, and thus has less impact on system performance.

在图6的实施例中,BIOS空间被划分为多个分区,其中每一分区具有对应的讯息文摘,其中讯息文摘是已加密并储存在BIOS只读存储器内所对应的位置。在一实施例中,对多个分区的每一分区来说,分区尺寸是相同的。在另一实施例中,多个分区具有不同的尺寸。在一实施例中,回应于BIOS检查触发(例如事件发生的计时器中断),多个分区中仅有一个分区会被检查。回应于BIOS检查触发,多个分区中的多个分区会被检查。在另一实施例中,回应于BIOS检查触发,多个分区中会被检查的分区数量是由窜改检测微码所决定(例如一个重复的周期1-3-1-2)。In the embodiment of FIG. 6 , the BIOS space is divided into multiple partitions, wherein each partition has a corresponding message digest, wherein the message digest is encrypted and stored in a corresponding location in the BIOS ROM. In one embodiment, the partition size is the same for each partition of the plurality of partitions. In another embodiment, the multiple partitions are of different sizes. In one embodiment, only one of the plurality of partitions is checked in response to a BIOS check trigger (eg, a timer interrupt when an event occurs). In response to the BIOS check trigger, multiple partitions of the multiple partitions are checked. In another embodiment, in response to a BIOS check trigger, the number of partitions to be checked among the plurality of partitions is determined by the tamper detection microcode (eg, a repeating cycle 1-3-1-2).

方框图600是描述设置在单一芯片并被封装以安装在主机板上的微处理器,如先前所描述。在一实施例中,微处理器是相容于x86架构,并且能执行x86指令集的全部指令。在另一实施例中,微处理器是设置在单一芯片的多核心处理器。在另一实施例中,微处理器是虚拟处理核心,其表示能共同使用处理器的逻辑部分内操作系统的实体处理器。为了描述本发明,微处理器的必要元件将描述于后,其中如本领域的技术人员所知的许多其他元件(例如载入/储存逻辑、快取存储器、排序逻辑等)将简化。Block diagram 600 depicts a microprocessor provided on a single chip and packaged for mounting on a motherboard, as previously described. In one embodiment, the microprocessor is compatible with the x86 architecture and can execute all instructions of the x86 instruction set. In another embodiment, the microprocessor is a multi-core processor disposed on a single chip. In another embodiment, the microprocessor is a virtual processing core, which represents a physical processor that can share an operating system within a logical portion of the processor. In order to describe the present invention, the essential elements of a microprocessor will be described below, where many other elements (such as load/store logic, cache memory, sort logic, etc.) as known to those skilled in the art will be simplified.

微处理器包括提取逻辑602,其中提取逻辑602是经由总线624而耦接于转译器604。转译器604是经由总线626而耦接于执行逻辑606。执行逻辑606包括密码机/散列单元608,其是经由总线622而耦接于密钥储存器610。执行逻辑606亦包括乱数产生器630。微处理器亦包括总线接口618,用以连接微处理器至芯片组。总线接口618是经由总线628而耦接于重置控制器612。重置控制器612接收重置信号RESET,并产生关机信号SHUTDOWN。重置控制器612包括窜改检测器614,其是经由总线NOBOOT而耦接于开机载入器616。窜改检测器614包括分区选择器652。重置控制器612是经由窜改总线TBUS以及乱数总线RBUS而耦接于执行逻辑606。The microprocessor includes fetch logic 602 coupled to translator 604 via bus 624 . Translator 604 is coupled to execution logic 606 via bus 626 . Execution logic 606 includes a cipher/hash unit 608 coupled to key storage 610 via bus 622 . The execution logic 606 also includes a random number generator 630 . The microprocessor also includes a bus interface 618 for connecting the microprocessor to the chipset. The bus interface 618 is coupled to the reset controller 612 via the bus 628 . The reset controller 612 receives the reset signal RESET and generates a shutdown signal SHUTDOWN. The reset controller 612 includes a tamper detector 614 coupled to a boot loader 616 via a bus NOBOOT. Tamper detector 614 includes partition selector 652 . The reset controller 612 is coupled to the execution logic 606 via the tamper bus TBUS and the random number bus RBUS.

在操作上,图6的架构内元件所执行的方式大体上相似于图3-图5的架构内的相同名字元件。然而,除了在重置开机顺序的期间检测BIOS的窜改,图6的架构亦包括能检查BIOS的窜改检测微码以及元件,以判断当计算系统在操作时BIOS是否被窜改。BIOS的有效性检查是根据如先前所描述的触发的发生。根据触发的发生,分区选择器652会有效地选择BIOS的一个或多个分区来进行检查。Operationally, elements within the architecture of FIG. 6 perform in a manner substantially similar to elements of the same name within the architecture of FIGS. 3-5 . However, in addition to detecting BIOS tampering during the reset boot sequence, the architecture of FIG. 6 also includes tamper detection microcode and components capable of checking the BIOS to determine if the BIOS has been tampered with while the computing system is in operation. The validity check of the BIOS is based on the occurrence of triggers as previously described. Upon occurrence of a trigger, partition selector 652 effectively selects one or more partitions of the BIOS for inspection.

相似于密钥,无法经由执行程序指令来对分区选择器652进行存取,而分区选择器652仅能由窜改检测器614以及窜改检测微码所存取。当BIOS检查触发发生时,计算系统的正常操作被中断,而分区选择器652会指示控制器612经由总线接口618来提取BIOS只读存储器(未显示)的一个或多个分区的内容,并经由窜改总线TBUS而提供所提取的内容至执行逻辑606。包括一个或多个所对应的已加密的数字签章的内容会经由窜改总线TBUS提供至执行逻辑606。窜改检测微码会指示密码机/散列单元608来根据散列演算法而执行一个或多个分区的散列,其中BIOS制造商是使用散列演算法来产生一个或多个数字签章。窜改检测微码亦指示密码机/散列单元608,使用储存在密钥储存器610的密钥来对从BIOS只读存储器提取出来的所对应的一个或多个已加密数字签章进行解密。密码机/散列单元608所产生的一个或多个数字签章以及已解密的一个或多个数字签章会经由窜改总线TBUS提供至窜改检测器614,其中已解密的一个或多个数字签章的加密版本是储存在BIOS只读存储器的一个或多个特定位置。Similar to a key, the partition selector 652 cannot be accessed by executing program instructions, and the partition selector 652 is only accessible by the tamper detector 614 and the tamper detection microcode. When a BIOS check trigger occurs, the normal operation of the computing system is interrupted, and the partition selector 652 instructs the controller 612 to extract the contents of one or more partitions of the BIOS ROM (not shown) via the bus interface 618 and transfer them via Tampering bus TBUS provides the extracted content to execution logic 606 . Content including one or more corresponding encrypted digital signatures is provided to execution logic 606 via tamper bus TBUS. The tamper detection microcode instructs the cipher/hash unit 608 to perform hashing of one or more partitions according to a hashing algorithm used by the BIOS manufacturer to generate one or more digital signatures. The tamper detection microcode also instructs the cipher/hash unit 608 to use the key stored in the key storage 610 to decrypt the corresponding one or more encrypted digital signatures extracted from the BIOS ROM. The one or more digital signatures and the decrypted one or more digital signatures generated by the cipher machine/hash unit 608 will be provided to the tampering detector 614 via the tampering bus TBUS, wherein the decrypted one or more digital signatures An encrypted version of the chapter is stored in one or more specific locations in the BIOS ROM.

窜改检测器614会对一对或多对的数字签章进行比较。如果全部的比较是相同的,则窜改检测器614会在事件触发中断发生时的时间点来恢复微处理器的控制。如果数字签章是不同的,则窜改检测器614会提供关机信号SHUTDOWN。关机信号SHUTDOWN会指示微处理器中剩下的元件来切断电源或是进入防止正常运行的模式。Tamper detector 614 compares one or more pairs of digital signatures. If all comparisons are the same, the tamper detector 614 restores control of the microprocessor at the point in time when the event-triggered interrupt occurs. If the digital signature is different, tamper detector 614 provides a shutdown signal SHUTDOWN. The shutdown signal SHUTDOWN instructs the remaining components in the microprocessor to either cut off power or enter a mode that prevents normal operation.

在另一实施例中,在完成BIOS非法侵入检查时,窜改检测微码会指示乱数产生器630来产生乱数,而不是检查固定或是循环数字的多个分区。乱数会被输入至分区选择器652,以便设定发生在执行下一次BIOS非法侵入检查设定之前的接续事件的数量。在此实施例中,在检查点触发时有效的分区的数量无法经由微处理器所执行的秘密应用来预测及预期。在不同实施例中,乱数是用来指示欲检查的多个分区的下一分区。In another embodiment, the tamper detection microcode instructs the random number generator 630 to generate random numbers instead of checking multiple partitions of fixed or cyclic numbers when completing the BIOS tamper check. A random number is input to the partition selector 652 to set the number of subsequent events that occur before the next BIOS intrusion check is performed. In this embodiment, the number of valid partitions at the time of the checkpoint trigger cannot be predicted and anticipated by the secret application executed by the microprocessor. In various embodiments, the nonce is used to indicate the next partition of the plurality of partitions to be checked.

参考图7图,图7是显示根据本发明一实施例所述的BIOS窜改保护架构的方框图700。图7的实施例提供了完整的配置,不仅在开机时以及重置时执行计算系统的BIOS的全面检查,并且在结合参考图4-图6的技术所使用的操作,亦能对系统的BIOS提供全面的保护。Referring to FIG. 7 , FIG. 7 is a block diagram 700 showing a BIOS tampering protection architecture according to an embodiment of the present invention. The embodiment of FIG. 7 provides a complete configuration that not only performs a comprehensive check of the computing system's BIOS at power-on and reset, but also performs a full check of the system's BIOS in conjunction with the operations used with reference to the techniques of FIGS. 4-6 . Provides comprehensive protection.

方框图700是描述设置在单一芯片并被封装以安装在主机板上的微处理器,如先前所描述。在一实施例中,微处理器相容于x86架构,并且能执行x86指令集的全部指令。在另一实施例中,微处理器是设置在单一芯片的多核心处理器。在另一实施例中,微处理器是虚拟处理核心,其表示能共同使用处理器的逻辑部分内操作系统的实体处理器。为了描述本发明,微处理器的必要元件将描述于后,其中如本领域的技术人员所知的许多其他元件(例如载入/储存逻辑、快取存储器、排序逻辑等)将简化。Block diagram 700 depicts a microprocessor disposed on a single chip and packaged for mounting on a motherboard, as previously described. In one embodiment, the microprocessor is compatible with the x86 architecture and can execute all instructions of the x86 instruction set. In another embodiment, the microprocessor is a multi-core processor disposed on a single chip. In another embodiment, the microprocessor is a virtual processing core, which represents a physical processor that can share an operating system within a logical portion of the processor. In order to describe the present invention, the essential elements of a microprocessor will be described below, where many other elements (such as load/store logic, cache memory, sort logic, etc.) as known to those skilled in the art will be simplified.

微处理器包括提取逻辑702,其中提取逻辑702经由总线724而耦接于转译器704。转译器704经由总线726而耦接于执行逻辑706。执行逻辑706包括密码机/散列单元708,其是经由总线722而耦接于密钥储存器710。执行逻辑706亦包括乱数产生器730。微处理器亦包括总线接口718,用以连接微处理器至芯片组。总线接口718经由总线728而耦接于重置控制器712。重置控制器712接收重置信号RESET,并产生关机信号SHUTDOWN。重置控制器712包括窜改检测器714,其经由总线NOBOOT而耦接于开机载入器716。窜改检测器714包括窜改计时器732、事件检测器742以及分区选择器752。事件检测器742接收输入/输出存取信号I/OACCESS、虚拟存储器映射改变信号VMMAP、处理器速度改变信号SPEED以及其他事件信号OTHER。重置控制器712经由窜改总线TBUS以及乱数总线RBUS而耦接于执行逻辑706。The microprocessor includes fetch logic 702 , wherein fetch logic 702 is coupled to translator 704 via bus 724 . Translator 704 is coupled to execution logic 706 via bus 726 . Execution logic 706 includes a cipher/hash unit 708 coupled to key storage 710 via bus 722 . The execution logic 706 also includes a random number generator 730 . The microprocessor also includes a bus interface 718 for connecting the microprocessor to the chipset. The bus interface 718 is coupled to the reset controller 712 via a bus 728 . The reset controller 712 receives the reset signal RESET and generates a shutdown signal SHUTDOWN. The reset controller 712 includes a tamper detector 714 coupled to a boot loader 716 via a bus NOBOOT. Tamper detector 714 includes a tamper timer 732 , an event detector 742 , and a partition selector 752 . The event detector 742 receives an input/output access signal I/OACCESS, a virtual memory map change signal VMMAP, a processor speed change signal SPEED, and other event signals OTHER. The reset controller 712 is coupled to the execution logic 706 via the tamper bus TBUS and the random number bus RBUS.

在操作上,图7的架构内元件所执行的方式大体上相似于图3-图6的架构内的相同名字元件。然而,除了在重置开机顺序的期间检测BIOS的窜改,图7的架构亦包括能检查BIOS的窜改检测微码以及元件,以判断当计算系统在操作时BIOS是否被窜改。BIOS的有效性检查是根据来自窜改计时器732的计时器中断以及如图5所描述的事件触发的发生。根据计时器中断或是事件触发的发生,分区选择器752会有效地选择BIOS的一个或多个分区来检查,如图6所描述。Operationally, elements within the architecture of FIG. 7 perform in a manner substantially similar to elements of the same name within the architecture of FIGS. 3-6 . However, in addition to detecting BIOS tampering during the reset boot sequence, the architecture of FIG. 7 also includes tamper detection microcode and components capable of checking the BIOS to determine if the BIOS has been tampered with while the computing system is in operation. The validity check of the BIOS is based on the occurrence of a timer interrupt from the tamper timer 732 and event triggers as described in FIG. 5 . According to the occurrence of timer interrupt or event trigger, the partition selector 752 will effectively select one or more partitions of the BIOS to check, as described in FIG. 6 .

窜改计时器732、事件检测器742以及分区选择器752无法经由执行程序指令来进行存取,而分区选择器752仅能由窜改检测器714以及窜改检测微码所存取。当计时器中断或是事件触发发生时,计算系统的正常操作被中断,而分区选择器752会指示控制器712经由总线接口718来提取BIOS只读存储器(未显示)的一个或多个分区的内容,并经由窜改总线TBUS而提供所提取的内容至执行逻辑706。包括一个或多个所对应的已加密的数字签章的内容会经由窜改总线TBUS提供至执行逻辑706。窜改检测微码会指示密码机/散列单元708来根据散列演算法而执行一个或多个分区的散列,其中BIOS制造商使用散列演算法来产生一个或多个数字签章。窜改检测微码亦指示密码机/散列单元708,使用储存在密钥储存器710的密钥来对从BIOS只读存储器提取出来的所对应的一个或多个已加密数字签章进行解密。密码机/散列单元708所产生的一个或多个数字签章以及已解密的一个或多个数字签章会经由窜改总线TBUS提供至窜改检测器714,其中已解密的一个或多个数字签章的加密版本是储存在BIOS只读存储器的一个或多个特定位置。Tamper timer 732, event detector 742, and partition selector 752 are not accessible via executing program instructions, while partition selector 752 is only accessible by tamper detector 714 and tamper detection microcode. When a timer interrupt or event trigger occurs, the normal operation of the computing system is interrupted, and the partition selector 752 will instruct the controller 712 to retrieve the information of one or more partitions of the BIOS ROM (not shown) via the bus interface 718. content and provide the extracted content to execution logic 706 via the tamper bus TBUS. Content including one or more corresponding encrypted digital signatures is provided to execution logic 706 via tamper bus TBUS. The tamper detection microcode instructs the cipher/hash unit 708 to perform hashing of one or more partitions according to a hashing algorithm used by the BIOS manufacturer to generate one or more digital signatures. The tamper detection microcode also instructs the cipher/hash unit 708 to use the key stored in the key storage 710 to decrypt the corresponding one or more encrypted digital signatures extracted from the BIOS ROM. The one or more digital signatures and the decrypted one or more digital signatures generated by the cipher machine/hash unit 708 will be provided to the tampering detector 714 via the tampering bus TBUS, wherein the decrypted one or more digital signatures An encrypted version of the chapter is stored in one or more specific locations in the BIOS ROM.

窜改检测器714会对一个或多对的数字签章进行比较。如果全部的比较是相同的,则窜改检测器714会在事件触发中断发生时的时间点来恢复微处理器的控制。如果数字签章是不同的,则窜改检测器714会提供关机信号SHUTDOWN。关机信号SHUTDOWN会指示微处理器中剩下的元件来切断电源或是进入防止正常运行的模式。Tamper detector 714 compares one or more pairs of digital signatures. If all comparisons are the same, the tamper detector 714 restores control of the microprocessor at the point in time when the event-triggered interrupt occurs. If the digital signature is different, tamper detector 714 provides a shutdown signal SHUTDOWN. The shutdown signal SHUTDOWN instructs the remaining components in the microprocessor to either cut off power or enter a mode that prevents normal operation.

在一实施例中,计时器中断以及事件触发的组合顺序是由窜改检测微码所决定。在另一实施例中,由乱数产生器730在BIOS检查结束时所产生的乱数会指示是否下一BIOS检查会根据计时器中断或是事件触发而启动。如图4-图5所显示,在部分实施例中,乱数产生器730会随机地改变时间间隔和/或事件类型以及事件的数量。In one embodiment, the combination sequence of the timer interrupt and the event trigger is determined by the tamper detection microcode. In another embodiment, the random number generated by the random number generator 730 at the end of the BIOS check indicates whether the next BIOS check will be initiated by a timer interrupt or an event trigger. As shown in FIGS. 4-5 , in some embodiments, the random number generator 730 randomly changes the time interval and/or event type and number of events.

在另一实施例中,在完成BIOS非法侵入检查时,窜改检测微码会指示乱数产生器730来产生乱数,而不是检查固定或是循环数字的多个分区。乱数会被输入至分区选择器752,以便设定在下一次BIOS非法侵入检查期间欲检查的分区的下一个数量。在此实施例中,在检查点触发时有效的分区的数量无法经由微处理器所执行的秘密应用来预测及预期。在不同实施例中,乱数是用来指示欲检查的多个分区的下一分区。In another embodiment, the tamper detection microcode instructs the random number generator 730 to generate random numbers instead of checking multiple partitions of fixed or cyclic numbers when completing the BIOS tamper check. The random number is input to the partition selector 752 to set the next number of partitions to be checked during the next BIOS intrusion check. In this embodiment, the number of valid partitions at the time of the checkpoint trigger cannot be predicted and anticipated by the secret application executed by the microprocessor. In various embodiments, the nonce is used to indicate the next partition of the plurality of partitions to be checked.

根据本发明实施例,微处理器的元件被配置来执行先前所描述的功能以及操作。元件包括逻辑、电路、设备或微码(即微指令或是本机指令)或其组合,或者被用来执行根据本发明所述的功能与操作的等效元件。微处理器内使用来完成功能与操作的元件可以与微处理器中用来执行其它功能和/或操作的其他电路、微码等共用。根据本发明的应用,微码是用来表示一个或多个微指令。微指令(又称为本机指令)是由一个单元所执行的指令。例如,微指令可直接由精简指令集计算机(RISC)微处理器所执行。对于复杂指令集计算机(CISC)微处理器而言,比如x86-相容微处理器,x86指令会被转译成相关的微指令,且相关的微指令会直接CISC微处理器中的一个或多个单元所执行。According to an embodiment of the present invention, the elements of the microprocessor are configured to perform the previously described functions and operations. Elements include logic, circuits, devices, or microcode (ie, microinstructions or native instructions) or combinations thereof, or equivalent elements used to perform the functions and operations described herein. Elements used in the microprocessor to perform functions and operations may be shared with other circuits, microcode, etc. in the microprocessor used to perform other functions and/or operations. According to the application of the present invention, microcode is used to represent one or more microinstructions. Microinstructions (also known as native instructions) are instructions executed by a unit. For example, microinstructions may be executed directly by a Reduced Instruction Set Computer (RISC) microprocessor. For Complex Instruction Set Computer (CISC) microprocessors, such as x86-compatible microprocessors, x86 instructions are translated into associated microinstructions, and the associated microinstructions are directed to one or executed by multiple units.

本发明及相对应叙述内容所提供的软件或是演算法及符号是表示一计算机存储器里的数据位的操作。这些内容及附图可使本领域的技术人员有效地表达相关内容予本领域的其它技术人员。使用上述的演算法是用以表达自我前后一致的顺序。这些步骤需要物理量的物理级操作。一般而言,这些物理量可能是光、电或是磁信号,其可被储存、转换、整合、比较及其它操作。有些为了方便,这些信号会被称为位、值、元件、符号、特性、项目、数量或其它相关内容。The software or algorithms and symbols provided by the present invention and corresponding descriptions represent operations on data bits in a computer memory. These contents and accompanying drawings enable those skilled in the art to effectively convey the related contents to others skilled in the art. The use of the above algorithm is to express a self-consistent sequence. The steps require physical-scale manipulations of physical quantities. Generally speaking, these physical quantities may be optical, electrical or magnetic signals, which can be stored, converted, integrated, compared and otherwise manipulated. Some of these signals will be referred to as bits, values, elements, symbols, properties, items, quantities or other related content for convenience.

然而,需注意的是,这些相似的术语是与物理量有关,并且只是用以方便说明这些物理量。除非另外特别说明,不然上述的术语(如处理、估算、计算、判断、显示、或其它相关术语)指的是一计算机系统、一微处理器、一中央处理单元或相似的电子计算机装置的动作及处理,其操作并转换数据,其表示物理性、计算机系统的寄存器及存储器的数量,用以得到其它相似计算机系统的存储器、寄存器或其它相似的信息储存装置、或显示装置的物理量的数据。However, it should be noted that these similar terms are related to physical quantities and are only used for convenience in describing these physical quantities. Unless specifically stated otherwise, the above terms (such as processing, estimating, calculating, judging, displaying, or other related terms) refer to the actions of a computer system, a microprocessor, a central processing unit, or similar electronic computing devices. And processing, which manipulates and converts data representing physical properties, registers and memory quantities of a computer system, to obtain data of physical quantities of memory, registers, or other similar information storage devices, or display devices of other similar computer systems.

需注意到的是,本发明实现软件的方法是在程序储存媒体或其它相似型态的传送媒体上进行编码。程序储存媒体可能是电子式(如只读存储器、快闪只读存储器、电子擦除式只读存储器)、随机存取存储器磁性装置(如软盘或硬盘)或光学式(如只读光盘存储器CDROM)、以及其它只读或随机存取元件。同样地,传送媒体可能是金属导线、双绞线、同轴电缆、光纤、或其它已知的相似的传送媒体。本发明并不限制在这些实施例。It should be noted that the method of implementing software in the present invention is to encode on a program storage medium or other similar transmission medium. The program storage medium may be electronic (such as ROM, flash ROM, electronically erasable ROM), random access memory magnetic (such as a floppy disk or hard disk), or optical (such as CDROM ), and other read-only or random-access components. Likewise, the transmission medium may be metallic wire, twisted pair wire, coaxial cable, fiber optics, or other known similar transmission media. The present invention is not limited to these examples.

虽然本发明已以较佳实施例揭示如上,然其并非用以限定本发明,本领域的技术人员,在不脱离本发明的精神和范围的前提下,可作些许的更动与润饰,因此本发明的保护范围是以本发明的权利要求为准。Although the present invention has been disclosed above with preferred embodiments, it is not intended to limit the present invention. Those skilled in the art can make some changes and modifications without departing from the spirit and scope of the present invention. Therefore, The scope of protection of the present invention is based on the claims of the present invention.

Claims (42)

1.一种用以保护一计算系统内的一基本输入输出系统的设备,包括:1. An apparatus for protecting a BIOS within a computing system, comprising: 一基本输入输出系统只读存储器,包括:A BIOS ROM, comprising: 多个基本输入输出系统内容分区,其中每一上述基本输入输出系统内容分区是储存为可读文本;以及a plurality of BIOS content partitions, wherein each of said BIOS content partitions is stored as readable text; and 多个加密讯息文摘,其中每一上述加密讯息文摘包括一第一讯息文摘的一加密版本以及所对应的上述基本输入输出系统内容分区;a plurality of encrypted message digests, each of which includes an encrypted version of a first message digest and the corresponding BIOS content partition; 一分区选择器,用以回应于中断上述计算系统的正常操作的一基本输入输出系统检查中断,选择一个或多个上述基本输入输出系统内容分区,其中所选择的一个或多个上述基本输入输出系统内容分区的数量是由一窜改检测微码所决定;以及a partition selector for selecting one or more of the above-mentioned BIOS content partitions in response to a BIOS check interrupt interrupting normal operation of the above-mentioned computing system, wherein the selected one or more of the above-mentioned BIOS The number of system content partitions is determined by a tamper detection microcode; and 一窜改检测器,耦接于上述基本输入输出系统只读存储器以及上述分区选择器并且能够存取该分区选择器,用以回应于上述基本输入输出系统检查中断而对一个或多个上述基本输入输出系统内容分区以及所对应的一个或多个上述加密讯息文摘进行存取、指示一微处理器使用用来产生上述第一讯息文摘与上述加密讯息文摘的相同演算法与密钥来产生对应于一个或多个上述基本输入输出系统内容分区的所对应的一个或多个第二讯息文摘以及对应于一个或多个上述加密讯息文摘的所对应的一个或多个解密讯息文摘、比较上述第二讯息文摘与上述解密讯息文摘,以及当一个或多个上述第二讯息文摘以及一个或多个上述解密讯息文摘不是成对相同时,防止上述微处理器的操作。a tamper detector, coupled to the BIOS ROM and the partition selector and having access to the partition selector, for testing one or more of the BIOS in response to the BIOS check interrupt Outputting the system content partition and the corresponding one or more encrypted message digests for access, instructing a microprocessor to use the same algorithm and key used to generate the first message digest and the encrypted message digest to generate the corresponding The one or more second message digests corresponding to the one or more above-mentioned BIOS content partitions and the corresponding one or more decrypted message digests corresponding to the one or more above-mentioned encrypted message digests, comparing the above-mentioned second Preventing operation of the microprocessor when the message digest is not pairwise identical to the decrypted message digest, and one or more of the second message digests and one or more of the decrypted message digests. 2.如权利要求1所述的设备,其中上述基本输入输出系统检查中断是周期性地在一时间间隔产生。2. The apparatus as claimed in claim 1, wherein said BIOS check interrupt is periodically generated at a time interval. 3.如权利要求1所述的设备,其中上述基本输入输出系统检查中断是根据一事件的发生而产生,其中上述事件包括选自下列事件的一者的一个或多个发生:3. The device as claimed in claim 1, wherein the above-mentioned BIOS check interrupt is generated according to the occurrence of an event, wherein the above-mentioned event includes one or more occurrences of one selected from the following events: 一输入/输出存取;- input/output access; 一处理器速度的改变;以及a change in processor speed; and 一虚拟存储器映射的改变。A virtual memory map change. 4.如权利要求1所述的设备,其中上述微处理器是使用一安全散列演算法来产生上述第二讯息文摘。4. The apparatus of claim 1, wherein the microprocessor generates the second message digest using a secure hash algorithm. 5.如权利要求1所述的设备,其中上述微处理器是使用一进阶加密标准演算法来产生上述解密讯息文摘。5. The apparatus of claim 1, wherein said microprocessor uses an Advanced Encryption Standard algorithm to generate said decrypted message digest. 6.如权利要求1所述的设备,其中上述微处理器包括设置在一执行逻辑内的一密码机/散列单元,以及上述第二讯息文摘以及上述解密讯息文摘是由上述密码机/散列单元所产生,其中上述密钥仅能由上述密码机/散列单元进行存取。6. The apparatus of claim 1, wherein said microprocessor includes a cipher/hash unit disposed within an execution logic, and said second message digest and said decrypted message digest are generated by said cipher/hash unit generated by the column unit, wherein the above-mentioned key can only be accessed by the above-mentioned cipher/hash unit. 7.如权利要求6所述的设备,其中上述微处理器还包括设置在上述执行逻辑内的一乱数产生器,其中在完成了一目前基本输入输出系统检查之后,上述乱数产生器产生一乱数,其中上述分区选择器是使用上述乱数来随机地设定在下一个基本输入输出系统检查期间欲检查的上述基本输入输出系统内容分区的数量。7. The apparatus of claim 6, wherein said microprocessor further comprises a random number generator disposed within said execution logic, wherein said random number generator generates a random number after completing a current BIOS check , wherein the above-mentioned partition selector uses the above-mentioned random number to randomly set the number of the above-mentioned BIOS content partitions to be checked during the next BIOS check. 8.一种用以保护一计算系统内的一基本输入输出系统的设备,包括:8. An apparatus for protecting a BIOS within a computing system, comprising: 一基本输入输出系统只读存储器,包括:A BIOS ROM, comprising: 多个基本输入输出系统内容分区,其中每一上述基本输入输出系统内容分区是储存为可读文本;以及a plurality of BIOS content partitions, wherein each of said BIOS content partitions is stored as readable text; and 多个加密讯息文摘,其中每一上述加密讯息文摘包括一第一讯息文摘的一加密版本以及所对应的上述基本输入输出系统内容分区;以及a plurality of encrypted message digests, wherein each said encrypted message digest includes an encrypted version of a first message digest and the corresponding said BIOS content partition; and 一微处理器,耦接于上述基本输入输出系统只读存储器,包括:A microprocessor coupled to the above-mentioned BIOS ROM, including: 一分区选择器,用以回应于中断上述计算系统的正常操作的一基本输入输出系统检查中断,选择一个或多个上述基本输入输出系统内容分区,其中所选择的一个或多个上述基本输入输出系统内容分区的数量是由一窜改检测微码所决定;以及a partition selector for selecting one or more of the above-mentioned BIOS content partitions in response to a BIOS check interrupt interrupting normal operation of the above-mentioned computing system, wherein the selected one or more of the above-mentioned BIOS The number of system content partitions is determined by a tamper detection microcode; and 一窜改检测器,耦接于上述基本输入输出系统只读存储器以及上述分区选择器并且能够存取该分区选择器,用以回应于上述基本输入输出系统检查中断而对一个或多个上述基本输入输出系统内容分区以及所对应的一个或多个上述加密讯息文摘进行存取、指示上述微处理器使用用来产生上述第一讯息文摘与上述加密讯息文摘的相同演算法与密钥来产生对应于一个或多个上述基本输入输出系统内容分区的所对应的一个或多个第二讯息文摘以及对应于一个或多个上述加密讯息文摘的所对应的一个或多个解密讯息文摘、比较上述第二讯息文摘与上述解密讯息文摘,以及当一个或多个上述第二讯息文摘以及一个或多个上述解密讯息文摘不是成对相同时,防止上述微处理器的操作。a tamper detector, coupled to the BIOS ROM and the partition selector and having access to the partition selector, for testing one or more of the BIOS in response to the BIOS check interrupt Outputting the system content partition and one or more corresponding encrypted message digests for access, instructing the microprocessor to use the same algorithm and key used to generate the first message digest and the encrypted message digest to generate the corresponding The one or more second message digests corresponding to the one or more above-mentioned BIOS content partitions and the corresponding one or more decrypted message digests corresponding to the one or more above-mentioned encrypted message digests, comparing the above-mentioned second Preventing operation of the microprocessor when the message digest is not pairwise identical to the decrypted message digest, and one or more of the second message digests and one or more of the decrypted message digests. 9.如权利要求8所述的设备,其中上述基本输入输出系统检查中断是周期性地在一时间间隔产生。9. The apparatus as claimed in claim 8, wherein said BIOS check interrupt is periodically generated at a time interval. 10.如权利要求8所述的设备,其中上述基本输入输出系统检查中断是根据一事件的发生而产生,其中上述事件包括选自下列事件的一者的一个或多个发生:10. The apparatus as claimed in claim 8, wherein the above-mentioned BIOS check interrupt is generated according to the occurrence of an event, wherein the above-mentioned event includes one or more occurrences of one selected from the following events: 一输入/输出存取;- input/output access; 一处理器速度的改变;以及a change in processor speed; and 一虚拟存储器映射的改变。A virtual memory map change. 11.如权利要求8所述的设备,其中上述微处理器是使用一安全散列演算法来产生上述第二讯息文摘。11. The apparatus of claim 8, wherein the microprocessor generates the second message digest using a secure hash algorithm. 12.如权利要求8所述的设备,其中上述微处理器是使用一进阶加密标准演算法来产生上述解密讯息文摘。12. The apparatus of claim 8, wherein said microprocessor uses an Advanced Encryption Standard algorithm to generate said decrypted message digest. 13.如权利要求8所述的设备,其中上述微处理器还包括:13. The apparatus as claimed in claim 8, wherein said microprocessor further comprises: 一密码机/散列单元,设置在一执行逻辑内,用以产生上述第二讯息文摘以及上述解密讯息文摘,其中上述密钥仅能由上述密码机/散列单元进行存取。A cipher/hash unit is set in an execution logic to generate the second message digest and the decrypted message digest, wherein the key can only be accessed by the cipher/hash unit. 14.如权利要求13所述的设备,其中上述微处理器还包括:14. The apparatus of claim 13, wherein said microprocessor further comprises: 一乱数产生器,设置在上述执行逻辑内,用以在完成了一目前基本输入输出系统检查之后,产生一乱数,a random number generator, arranged in the above execution logic, for generating a random number after completing a current basic input output system check, 其中上述分区选择器是使用上述乱数来随机地设定在下一个基本输入输出系统检查期间欲检查的上述基本输入输出系统内容分区的数量。Wherein the above-mentioned partition selector uses the above-mentioned random number to randomly set the number of the above-mentioned BIOS content partitions to be inspected during the next BIOS inspection. 15.一种用以保护一计算系统内的一基本输入输出系统的方法,包括:15. A method for securing a BIOS within a computing system, comprising: 储存多个基本输入输出系统内容分区以及多个加密讯息文摘至一基本输入输出系统只读存储器,其中每一上述基本输入输出系统内容分区是储存为可读文本,以及每一上述加密讯息文摘包括一第一讯息文摘的一加密版本以及所对应的上述基本输入输出系统内容分区;storing a plurality of BIOS content partitions and a plurality of encrypted message digests in a BIOS read-only memory, wherein each of said BIOS content partitions is stored as readable text, and each of said encrypted message digests includes An encrypted version of the first message digest and the corresponding BIOS content partition; 回应于中断上述计算系统的正常操作的一基本输入输出系统检查中断,选择一个或多个上述基本输入输出系统内容分区,其中所选择的一个或多个上述基本输入输出系统内容分区的数量是由一窜改检测微码所决定;In response to a BIOS check interrupt interrupting normal operation of said computing system, selecting one or more of said BIOS content partitions, wherein the number of selected one or more of said BIOS content partitions is determined by - Determined by the tamper detection microcode; 回应于上述基本输入输出系统检查中断,对一个或多个上述基本输入输出系统内容分区以及所对应的一个或多个上述加密讯息文摘进行存取,以及使用用来产生上述第一讯息文摘与上述加密讯息文摘的相同演算法与密钥来产生对应于所选择的一个或多个上述基本输入输出系统内容分区的所对应的一个或多个第二讯息文摘以及对应于一个或多个上述加密讯息文摘的所对应的一个或多个解密讯息文摘;In response to the above-mentioned BIOS check interrupt, access one or more of the above-mentioned BIOS content partitions and the corresponding one or more of the above-mentioned encrypted message digests, and use the method used to generate the above-mentioned first message digest and the above-mentioned the same algorithm and key for encrypting the message digest to generate corresponding one or more second message digests corresponding to the selected one or more of the aforementioned BIOS content partitions and corresponding to one or more of the aforementioned encrypted message digests one or more decrypted message digests corresponding to the digest; 比较上述第二讯息文摘与上述解密讯息文摘;以及comparing said second message digest with said decrypted message digest; and 以及当一个或多个上述第二讯息文摘以及一个或多个上述解密讯息文摘不是成对相同时,防止一微处理器的操作。and preventing operation of a microprocessor when one or more of said second message digests and one or more of said decrypted message digests are not pairwise identical. 16.如权利要求15所述的方法,其中上述基本输入输出系统检查中断是周期性地在一时间间隔产生。16. The method of claim 15, wherein said BIOS check interrupt is periodically generated at a time interval. 17.如权利要求15所述的方法,其中上述基本输入输出系统检查中断是根据一事件的发生而产生,其中上述事件包括选自下列事件的一者的一个或多个发生:17. The method as claimed in claim 15, wherein the above-mentioned BIOS check interrupt is generated according to the occurrence of an event, wherein the above-mentioned event includes one or more occurrences of one selected from the following events: 一输入/输出存取;- input/output access; 一处理器速度的改变;以及a change in processor speed; and 一虚拟存储器映射的改变。A virtual memory map change. 18.如权利要求15所述的方法,其中上述回应于上述基本输入输出系统检查中断,对一个或多个上述基本输入输出系统内容分区以及所对应的一个或多个上述加密讯息文摘进行存取的步骤还包括:18. The method of claim 15, wherein said one or more of said BIOS content partitions and corresponding one or more of said encrypted message digests are accessed in response to said BIOS check interrupt The steps also include: 使用一安全散列演算法来产生上述第二讯息文摘。A secure hash algorithm is used to generate the above-mentioned second message digest. 19.如权利要求15所述的方法,其中上述回应于上述基本输入输出系统检查中断,对一个或多个上述基本输入输出系统内容分区以及所对应的一个或多个上述加密讯息文摘进行存取的步骤还包括:19. The method of claim 15, wherein said one or more of said BIOS content partitions and the corresponding one or more of said encrypted message digests are accessed in response to said BIOS check interrupt The steps also include: 使用一进阶加密标准演算法来产生上述解密讯息文摘。An APSC algorithm is used to generate the decrypted message digest. 20.如权利要求15所述的方法,其中上述微处理器包括设置在一执行逻辑内的一密码机/散列单元,以及上述第二讯息文摘以及上述解密讯息文摘是由上述密码机/散列单元所产生,其中上述密钥仅能由上述密码机/散列单元进行存取。20. The method of claim 15, wherein said microprocessor includes a cipher/hash unit disposed within an execution logic, and said second message digest and said decrypted message digest are generated by said cipher/hash unit generated by the column unit, wherein the above-mentioned key can only be accessed by the above-mentioned cipher/hash unit. 21.如权利要求20所述的方法,其中上述微处理器还包括设置在上述执行逻辑内的一乱数产生器,其中在完成了一目前基本输入输出系统检查之后,上述乱数产生器产生一乱数,其中上述分区选择是使用上述乱数来随机地设定在下一个基本输入输出系统检查期间欲检查的上述基本输入输出系统内容分区的数量。21. The method of claim 20, wherein said microprocessor further comprises a random number generator disposed within said execution logic, wherein said random number generator generates a random number after completing a current BIOS check , wherein the above-mentioned partition selection is to use the above-mentioned random number to randomly set the number of the above-mentioned BIOS content partitions to be checked during the next BIOS check. 22.一种用以保护一计算系统内的一基本输入输出系统的设备,包括:22. An apparatus for protecting a BIOS within a computing system, comprising: 一基本输入输出系统只读存储器,包括:A BIOS ROM, comprising: 多个基本输入输出系统内容分区,其中每一上述基本输入输出系统内容分区是储存为可读文本;以及a plurality of BIOS content partitions, wherein each of said BIOS content partitions is stored as readable text; and 多个加密讯息文摘,其中每一上述加密讯息文摘包括一第一讯息文摘的一加密版本以及所对应的上述基本输入输出系统内容分区;a plurality of encrypted message digests, each of which includes an encrypted version of a first message digest and the corresponding BIOS content partition; 一分区选择器,用以回应于中断上述计算系统的正常操作的一基本输入输出系统检查中断,选择一个或多个上述基本输入输出系统内容分区,其中所选择的一个或多个上述基本输入输出系统内容分区的数量是由一窜改检测微码所决定;以及a partition selector for selecting one or more of the above-mentioned BIOS content partitions in response to a BIOS check interrupt interrupting normal operation of the above-mentioned computing system, wherein the selected one or more of the above-mentioned BIOS The number of system content partitions is determined by a tamper detection microcode; and 一窜改检测器,耦接于上述基本输入输出系统只读存储器以及上述分区选择器并且能够存取该分区选择器,用以在时间间隔以及事件发生的一组合而产生上述基本输入输出系统检查中断、回应于上述基本输入输出系统检查中断而对一个或多个上述基本输入输出系统内容分区以及所对应的一个或多个上述加密讯息文摘进行存取、指示一微处理器使用用来产生上述第一讯息文摘与上述加密讯息文摘的相同演算法与密钥来产生对应于一个或多个上述基本输入输出系统内容分区的所对应的一个或多个第二讯息文摘以及对应于一个或多个上述加密讯息文摘的所对应的一个或多个解密讯息文摘、比较上述第二讯息文摘与上述解密讯息文摘,以及当一个或多个上述第二讯息文摘以及一个或多个上述解密讯息文摘不是成对相同时,防止上述微处理器的操作。a tamper detector coupled to the BIOS ROM and the partition selector and capable of accessing the partition selector for generating the BIOS check interrupt at a combination of time intervals and event occurrences , responding to the above-mentioned BIOS check interrupt, accessing one or more of the above-mentioned BIOS content partitions and the corresponding one or more of the above-mentioned encrypted message digests, instructing a microprocessor to use the method used to generate the above-mentioned first A message digest with the same algorithm and key as the encrypted message digest to generate one or more second message digests corresponding to one or more of the above BIOS content partitions and corresponding to one or more of the above one or more decrypted message digests corresponding to the encrypted message digest, comparing the second message digest with the decrypted message digest, and when one or more of the second message digests and one or more of the decrypted message digests are not paired At the same time, the operation of the above-mentioned microprocessor is prevented. 23.如权利要求22所述的设备,其中上述微处理器是使用一安全散列演算法来产生上述第二讯息文摘。23. The apparatus of claim 22, wherein the microprocessor generates the second message digest using a secure hash algorithm. 24.如权利要求22所述的设备,其中上述微处理器是使用一进阶加密标准演算法来产生上述解密讯息文摘。24. The apparatus of claim 22, wherein said microprocessor uses an Advanced Encryption Standard algorithm to generate said decrypted message digest. 25.如权利要求22所述的设备,其中时间间隔以及事件发生的上述组合包括时间间隔以及事件发生的一编程顺序。25. The apparatus of claim 22, wherein said combination of time intervals and event occurrences comprises a programmed sequence of time intervals and event occurrences. 26.如权利要求22所述的设备,其中上述微处理器包括设置在一执行逻辑内的一密码机/散列单元,以及上述第二讯息文摘以及上述解密讯息文摘是由上述密码机/散列单元所产生,其中上述密钥仅能由上述密码机/散列单元进行存取。26. The apparatus of claim 22, wherein said microprocessor includes a cipher/hash unit disposed within an execution logic, and said second message digest and said decrypted message digest are generated by said cipher/hash unit generated by the column unit, wherein the above-mentioned key can only be accessed by the above-mentioned cipher/hash unit. 27.如权利要求26所述的设备,其中上述微处理器还包括设置在上述执行逻辑内的一乱数产生器,其中在完成了一目前基本输入输出系统检查之后,上述乱数产生器产生一乱数,其中当一事件发生的时间间隔逾期时,窜改计时器是使用上述乱数来随机地设定下一个基本输入输出系统检查中断是否成立。27. The apparatus of claim 26, wherein said microprocessor further comprises a random number generator disposed within said execution logic, wherein said random number generator generates a random number after completing a current BIOS check , wherein when the time interval for an event to occur expires, the tampering timer uses the above-mentioned random number to randomly set the next BIOS to check whether the interrupt is established. 28.如权利要求26所述的设备,其中上述微处理器还包括设置在上述执行逻辑内的一乱数产生器,其中在完成了一目前基本输入输出系统检查之后,上述乱数产生器产生一乱数,其中上述分区选择器是使用上述乱数来随机地设定在下一个基本输入输出系统检查期间欲检查的上述基本输入输出系统内容分区的数量。28. The apparatus of claim 26, wherein said microprocessor further comprises a random number generator disposed within said execution logic, wherein said random number generator generates a random number after completing a current BIOS check , wherein the above-mentioned partition selector uses the above-mentioned random number to randomly set the number of the above-mentioned BIOS content partitions to be checked during the next BIOS check. 29.一种用以保护一计算系统内的一基本输入输出系统的设备,包括:29. An apparatus for protecting a BIOS within a computing system, comprising: 一基本输入输出系统只读存储器,包括:A BIOS ROM, comprising: 多个基本输入输出系统内容分区,其中每一上述基本输入输出系统内容分区是储存为可读文本;以及a plurality of BIOS content partitions, wherein each of said BIOS content partitions is stored as readable text; and 多个加密讯息文摘,其中每一上述加密讯息文摘包括一第一讯息文摘的一加密版本以及所对应的上述基本输入输出系统内容分区;a plurality of encrypted message digests, each of which includes an encrypted version of a first message digest and the corresponding BIOS content partition; 一微处理器,耦接于上述基本输入输出系统只读存储器,包括:A microprocessor coupled to the above-mentioned BIOS ROM, including: 一分区选择器,用以回应于中断上述计算系统的正常操作的一基本输入输出系统检查中断,选择一个或多个上述基本输入输出系统内容分区,其中所选择的一个或多个上述基本输入输出系统内容分区的数量是由一窜改检测微码所决定;以及a partition selector for selecting one or more of the above-mentioned BIOS content partitions in response to a BIOS check interrupt interrupting normal operation of the above-mentioned computing system, wherein the selected one or more of the above-mentioned BIOS The number of system content partitions is determined by a tamper detection microcode; and 一窜改检测器,耦接于上述基本输入输出系统只读存储器以及上述分区选择器并且能够存取该分区选择器,用以在时间间隔以及事件发生的一组合而产生上述基本输入输出系统检查中断、回应于上述基本输入输出系统检查中断而对一个或多个上述基本输入输出系统内容分区以及所对应的一个或多个上述加密讯息文摘进行存取、指示上述微处理器使用用来产生上述第一讯息文摘与上述加密讯息文摘的相同演算法与密钥来产生对应于一个或多个上述基本输入输出系统内容分区的所对应的一个或多个第二讯息文摘以及对应于一个或多个上述加密讯息文摘的所对应的一个或多个解密讯息文摘、比较上述第二讯息文摘与上述解密讯息文摘,以及当一个或多个上述第二讯息文摘以及一个或多个上述解密讯息文摘不是成对相同时,防止上述微处理器的操作。a tamper detector coupled to the BIOS ROM and the partition selector and capable of accessing the partition selector for generating the BIOS check interrupt at a combination of time intervals and event occurrences , responding to the above-mentioned BIOS check interrupt, accessing one or more of the above-mentioned BIOS content partitions and the corresponding one or more of the above-mentioned encrypted message digests, instructing the above-mentioned microprocessor to use the method used to generate the above-mentioned first A message digest with the same algorithm and key as the encrypted message digest to generate one or more second message digests corresponding to one or more of the above BIOS content partitions and corresponding to one or more of the above one or more decrypted message digests corresponding to the encrypted message digest, comparing the second message digest with the decrypted message digest, and when one or more of the second message digests and one or more of the decrypted message digests are not paired At the same time, the operation of the above-mentioned microprocessor is prevented. 30.如权利要求29所述的设备,其中上述微处理器是使用一安全散列演算法来产生上述第二讯息文摘。30. The apparatus of claim 29, wherein the microprocessor generates the second message digest using a secure hash algorithm. 31.如权利要求29所述的设备,其中上述微处理器是使用一进阶加密标准演算法来产生上述解密讯息文摘。31. The apparatus of claim 29, wherein said microprocessor uses an Advanced Encryption Standard algorithm to generate said decrypted message digest. 32.如权利要求29所述的设备,其中时间间隔以及事件发生的上述组合包括时间间隔以及事件发生的一编程顺序。32. The apparatus of claim 29, wherein said combination of time intervals and event occurrences comprises a programmed sequence of time intervals and event occurrences. 33.如权利要求29所述的设备,其中上述微处理器还包括:33. The apparatus of claim 29, wherein said microprocessor further comprises: 一密码机/散列单元,设置在一执行逻辑内,用以产生上述第二讯息文摘以及上述解密讯息文摘,其中上述密钥仅能由上述密码机/散列单元进行存取。A cipher/hash unit is set in an execution logic to generate the second message digest and the decrypted message digest, wherein the key can only be accessed by the cipher/hash unit. 34.如权利要求33所述的设备,其中上述微处理器还包括:34. The apparatus of claim 33, wherein said microprocessor further comprises: 一乱数产生器,设置在上述执行逻辑内,用以在完成了一目前基本输入输出系统检查之后,产生一乱数,其中当一事件发生的时间间隔逾期时,窜改计时器是使用上述乱数来随机地设定下一个基本输入输出系统检查中断是否成立。A random number generator, arranged in the above-mentioned execution logic, to generate a random number after completing a current BIOS check, wherein when the time interval for an event to occur expires, the tampering timer uses the above-mentioned random number to randomly ground set the next BIOS to check whether the interrupt is true. 35.如权利要求33所述的设备,其中上述微处理器还包括:35. The apparatus of claim 33, wherein said microprocessor further comprises: 一乱数产生器,设置在上述执行逻辑内,用以在完成了一目前基本输入输出系统检查之后,产生一乱数,其中上述分区选择器是使用上述乱数来随机地设定在下一个基本输入输出系统检查期间欲检查的上述基本输入输出系统内容分区的数量。a random number generator, arranged in the execution logic, to generate a random number after a current BIOS check is completed, wherein the partition selector uses the random number to randomly set the next BIOS The number of the above BIOS content partitions to check during the check. 36.一种用以保护一计算系统内的一基本输入输出系统的方法,包括:36. A method for securing a BIOS within a computing system, comprising: 储存多个基本输入输出系统内容分区以及多个加密讯息文摘至一基本输入输出系统只读存储器,其中每一上述基本输入输出系统内容分区是储存为可读文本,以及每一上述加密讯息文摘包括一第一讯息文摘的一加密版本以及所对应的上述基本输入输出系统内容分区;storing a plurality of BIOS content partitions and a plurality of encrypted message digests in a BIOS read-only memory, wherein each of said BIOS content partitions is stored as readable text, and each of said encrypted message digests includes An encrypted version of the first message digest and the corresponding BIOS content partition; 回应于中断上述计算系统的正常操作的一基本输入输出系统检查中断,选择一个或多个上述基本输入输出系统内容分区,其中所选择的一个或多个上述基本输入输出系统内容分区的数量是由一窜改检测微码所决定;In response to a BIOS check interrupt interrupting normal operation of said computing system, selecting one or more of said BIOS content partitions, wherein the number of selected one or more of said BIOS content partitions is determined by - Determined by the tamper detection microcode; 在时间间隔以及事件发生的一组合而产生上述基本输入输出系统检查中断;The above-mentioned BIOS check interrupt is generated at a combination of time intervals and event occurrences; 回应于上述基本输入输出系统检查中断,对一个或多个上述基本输入输出系统内容分区以及所对应的一个或多个上述加密讯息文摘进行存取,以及使用用来产生上述第一讯息文摘与上述加密讯息文摘的相同演算法与密钥来产生对应于所选择的一个或多个上述基本输入输出系统内容分区的所对应的一个或多个第二讯息文摘以及对应于一个或多个上述加密讯息文摘的所对应的一个或多个解密讯息文摘;In response to the above-mentioned BIOS check interrupt, access one or more of the above-mentioned BIOS content partitions and the corresponding one or more of the above-mentioned encrypted message digests, and use the method used to generate the above-mentioned first message digest and the above-mentioned the same algorithm and key for encrypting the message digest to generate corresponding one or more second message digests corresponding to the selected one or more of the aforementioned BIOS content partitions and corresponding to one or more of the aforementioned encrypted message digests one or more decrypted message digests corresponding to the digest; 比较上述第二讯息文摘与上述解密讯息文摘;以及comparing said second message digest with said decrypted message digest; and 当一个或多个上述第二讯息文摘以及一个或多个上述解密讯息文摘不是成对相同时,防止一微处理器的操作。Preventing operation of a microprocessor when one or more of said second message digests and one or more of said decrypted message digests are not pairwise identical. 37.如权利要求36所述的方法,其中上述回应于上述基本输入输出系统检查中断,对一个或多个上述基本输入输出系统内容分区以及所对应的一个或多个上述加密讯息文摘进行存取的步骤还包括:37. The method of claim 36, wherein said one or more of said BIOS content partitions and corresponding one or more of said encrypted message digests are accessed in response to said BIOS check interrupt The steps also include: 使用一安全散列演算法来产生上述第二讯息文摘。A secure hash algorithm is used to generate the above-mentioned second message digest. 38.如权利要求36所述的方法,其中上述回应于上述基本输入输出系统检查中断,对一个或多个上述基本输入输出系统内容分区以及所对应的一个或多个上述加密讯息文摘进行存取的步骤还包括:38. The method of claim 36, wherein said one or more of said BIOS content partitions and corresponding one or more of said encrypted message digests are accessed in response to said BIOS check interrupt The steps also include: 使用一进阶加密标准演算法来产生上述解密讯息文摘。An APSC algorithm is used to generate the decrypted message digest. 39.如权利要求36所述的方法,其中时间间隔以及事件发生的上述组合包括时间间隔以及事件发生的一编程顺序。39. The method of claim 36, wherein said combination of time intervals and event occurrences comprises a programmed sequence of time intervals and event occurrences. 40.如权利要求36所述的方法,其中上述微处理器包括设置在一执行逻辑内的一密码机/散列单元,以及上述第二讯息文摘以及上述解密讯息文摘是由上述密码机/散列单元所产生,其中上述密钥仅能由上述密码机/散列单元进行存取。40. The method of claim 36, wherein said microprocessor includes a cipher/hash unit disposed within an execution logic, and said second message digest and said decrypted message digest are generated by said cipher/hash unit generated by the column unit, wherein the above-mentioned key can only be accessed by the above-mentioned cipher/hash unit. 41.如权利要求40所述的方法,其中上述微处理器还包括设置在上述执行逻辑内的一乱数产生器,其中在完成了一目前基本输入输出系统检查之后,上述乱数产生器产生一乱数,其中当一事件发生的时间间隔逾期时,窜改计时器是使用上述乱数来随机地设定下一个基本输入输出系统检查中断是否成立。41. The method of claim 40, wherein said microprocessor further comprises a random number generator disposed within said execution logic, wherein said random number generator generates a random number after completing a current BIOS check , wherein when the time interval for an event to occur expires, the tampering timer uses the above-mentioned random number to randomly set the next BIOS to check whether the interrupt is established. 42.如权利要求40所述的方法,其中上述微处理器还包括设置在上述执行逻辑内的一乱数产生器,其中在完成了一目前基本输入输出系统检查之后,上述乱数产生器产生一乱数,其中分区选择是使用上述乱数来随机地设定在下一个基本输入输出系统检查期间欲检查的上述基本输入输出系统内容分区的数量。42. The method of claim 40, wherein said microprocessor further comprises a random number generator disposed within said execution logic, wherein said random number generator generates a random number after completing a current BIOS check , wherein the partition selection is to use the random number to randomly set the number of the above-mentioned BIOS content partitions to be checked during the next BIOS check.
CN201410085132.9A 2013-11-13 2014-03-10 Device and method for protecting basic input and output systems Active CN103810443B (en)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US14/079,226 US9129113B2 (en) 2013-11-13 2013-11-13 Partition-based apparatus and method for securing bios in a trusted computing system during execution
US14/079,226 2013-11-13
US14/079,299 US9183394B2 (en) 2013-11-13 2013-11-13 Secure BIOS tamper protection mechanism
US14/079,299 2013-11-13

Publications (2)

Publication Number Publication Date
CN103810443A CN103810443A (en) 2014-05-21
CN103810443B true CN103810443B (en) 2017-03-01

Family

ID=50707192

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410085132.9A Active CN103810443B (en) 2013-11-13 2014-03-10 Device and method for protecting basic input and output systems

Country Status (2)

Country Link
CN (1) CN103810443B (en)
TW (1) TWI520001B (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112908392B (en) * 2021-02-09 2023-09-15 东芯半导体股份有限公司 Control method for controlling non-volatile memory parameters

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5802592A (en) * 1996-05-31 1998-09-01 International Business Machines Corporation System and method for protecting integrity of alterable ROM using digital signatures
CN1231787A (en) * 1996-09-30 1999-10-13 英特尔公司 Security BIOS
CN1591362A (en) * 2003-08-25 2005-03-09 联想(北京)有限公司 Safety chip information processing apparatus and starting method based on chip
CN101421739A (en) * 2006-04-13 2009-04-29 惠普开发有限公司 Authentication of a request to alter at least one of a BIOS and a setting associated with the BIOS
CN103038745A (en) * 2010-05-21 2013-04-10 惠普发展公司,有限责任合伙企业 Extending an integrity measurement

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5802592A (en) * 1996-05-31 1998-09-01 International Business Machines Corporation System and method for protecting integrity of alterable ROM using digital signatures
CN1231787A (en) * 1996-09-30 1999-10-13 英特尔公司 Security BIOS
CN1591362A (en) * 2003-08-25 2005-03-09 联想(北京)有限公司 Safety chip information processing apparatus and starting method based on chip
CN101421739A (en) * 2006-04-13 2009-04-29 惠普开发有限公司 Authentication of a request to alter at least one of a BIOS and a setting associated with the BIOS
CN103038745A (en) * 2010-05-21 2013-04-10 惠普发展公司,有限责任合伙企业 Extending an integrity measurement

Also Published As

Publication number Publication date
CN103810443A (en) 2014-05-21
TWI520001B (en) 2016-02-01
TW201518987A (en) 2015-05-16

Similar Documents

Publication Publication Date Title
US9805198B2 (en) Event-based apparatus and method for securing bios in a trusted computing system during execution
US9183394B2 (en) Secure BIOS tamper protection mechanism
US9129113B2 (en) Partition-based apparatus and method for securing bios in a trusted computing system during execution
EP2874092B1 (en) Recurrent BIOS verification with embedded encrypted hash
US9367689B2 (en) Apparatus and method for securing BIOS in a trusted computing system
US10049217B2 (en) Event-based apparatus and method for securing bios in a trusted computing system during execution
US9798880B2 (en) Fuse-enabled secure bios mechanism with override feature
US9779242B2 (en) Programmable secure bios mechanism in a trusted computing system
US9779243B2 (en) Fuse-enabled secure BIOS mechanism in a trusted computing system
TW201519097A (en) Apparatus and method for securing BIOS
CN107273770B (en) Protection device and method for basic input output system
US10055588B2 (en) Event-based apparatus and method for securing BIOS in a trusted computing system during execution
CN103810443B (en) Device and method for protecting basic input and output systems
TWI655555B (en) Apparatus and method for securing bios
US9767288B2 (en) JTAG-based secure BIOS mechanism in a trusted computing system
EP3316167A1 (en) Programmable secure bios mechanism in a trusted computing system
US10095868B2 (en) Event-based apparatus and method for securing bios in a trusted computing system during execution
EP3316169B1 (en) Jtag-based secure bios mechanism in a trusted computing system
EP3316170A1 (en) Fuse-enabled secure bios mechanism with override feature

Legal Events

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