DE102015108504B4 - Method for safely booting a computer system and computer system - Google Patents

Method for safely booting a computer system and computer system Download PDF

Info

Publication number
DE102015108504B4
DE102015108504B4 DE102015108504.6A DE102015108504A DE102015108504B4 DE 102015108504 B4 DE102015108504 B4 DE 102015108504B4 DE 102015108504 A DE102015108504 A DE 102015108504A DE 102015108504 B4 DE102015108504 B4 DE 102015108504B4
Authority
DE
Germany
Prior art keywords
program code
processor
crypto
boot loader
main processor
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
DE102015108504.6A
Other languages
German (de)
Other versions
DE102015108504A1 (en
Inventor
Diana Filimon
Jürgen Atzkern
Thilo Cestonaro
Timo Bruderek
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.)
Fujitsu Client Computing Ltd
Original Assignee
Fujitsu Client Computing Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Client Computing Ltd filed Critical Fujitsu Client Computing Ltd
Priority to DE102015108504.6A priority Critical patent/DE102015108504B4/en
Priority to PCT/EP2016/055968 priority patent/WO2016192867A1/en
Priority to US15/578,049 priority patent/US10540500B2/en
Priority to EP16711238.2A priority patent/EP3304403B1/en
Publication of DE102015108504A1 publication Critical patent/DE102015108504A1/en
Application granted granted Critical
Publication of DE102015108504B4 publication Critical patent/DE102015108504B4/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/575Secure boot
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/572Secure firmware programming, e.g. of basic input output system [BIOS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/72Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in cryptographic circuits
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/03Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
    • G06F2221/033Test or assess software
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping

Abstract

Verfahren zum sicheren Booten eines Computersystems (10) mit einem Hauptprozessor (11), einem Cryptoprozessor (12), einem Multiplexer (14) und einem SPI-Baustein (13), wobei in dem SPI-Baustein (13) der Programmcode des wenigstens einen Bootloaders gespeichert ist und an den Multiplexer (14) der Hauptprozessor (11), der Cryptoprozessor (12) und der SPI-Baustein (13) elektrisch angeschlossen sind, wobei das Verfahren die folgenden Schritte umfasst:- Schalten des Multiplexers (14) durch den Cryptoprozessor (12), so dass eine elektrische Verbindung von dem SPI-Baustein (13) zu dem Hauptprozessor (11) aufgebaut wird;- Ausführen von Programmcode wenigstens eines Bootloaders zum Laden eines Kernels nach dem Schritt des Schaltens des Multiplexers, wobei der Kernel durch den Hauptprozessor (11) geladen wird;- Schalten des Multiplexers (14) durch den Cryptoprozessor (12) nach dem Schritt des Ausführens des Programmcodes des wenigstens einen Bootloaders, so dass eine elektrische Verbindung von dem SPI-Baustein (13) zu dem Cryptoprozessor (12) aufgebaut und die elektrische Verbindung zwischen dem SPI-Baustein (13) und dem Hauptprozessor (11) unterbrochen wird;- Überprüfen des Programmcodes des Bootloaders durch den Cryptoprozessor (12) nachdem eine elektrische Verbindung von dem SPI-Baustein (13) zu dem Cryptoprozessor (12) aufgebaut wurde, nachdem wenigstens ein Teil des Programmcodes des Bootloaders ausgeführt wurde; und- Unterbrechen des Bootens durch den Cryptoprozessor (12), wenn ein Ergebnis des Überprüfens des Programmcodes des Bootloaders auf eine Manipulation des Programmcodes des Bootloaders hinweist.Method for safely booting a computer system (10) having a main processor (11), a crypto processor (12), a multiplexer (14) and an SPI module (13), wherein in the SPI module (13) the program code of the at least one Bootloaders is stored and to the multiplexer (14) of the main processor (11), the crypto processor (12) and the SPI module (13) are electrically connected, the method comprising the steps of: - switching the multiplexer (14) by the Crypto processor (12) so as to establish an electrical connection from the SPI device (13) to the main processor (11); executing program code of at least one bootloader to load a kernel after the step of switching the multiplexer, the kernel passing through switching the multiplexer (14) by the crypto-processor (12) after the step of executing the program code of the at least one bootloader so that an electrical connection of the SPI module (13) is set up to the crypto processor (12) and the electrical connection between the SPI module (13) and the main processor (11) is interrupted, - checking the program code of the bootloader by the crypto processor (12) after an electrical Connection from the SPI device (13) to the crypto processor (12) has been established after at least a portion of the program code of the bootloader has been executed; and - interrupting the booting by the crypto processor (12) if a result of the checking of the program code of the boot loader indicates a manipulation of the program code of the boot loader.

Description

Die Erfindung betrifft ein Verfahren zum sicheren Booten eines Computersystems sowie ein Computersystem mit einer Einrichtung zum Überprüfen von Programmcode eines Bootloaders.The invention relates to a method for safely booting a computer system and to a computer system with a device for checking the program code of a boot loader.

In Computersystemen mit sicherheitskritischen Anwendungen ist es notwendig, bereits das Booten des Computersystems zu überprüfen und zu sichern. Derartige Computersysteme werden beispielsweise zur Authentifizierung bei oder zum Ausführen von Bezahlvorgängen von Benutzern verwendet. Ein Benutzer kann sich hierbei durch Eingabe von Codes oder biometrischen Daten authentifizieren. Um unberechtigten Dritten zu erschweren, auf das Computersystem zuzugreifen und somit Zugriffe auf personenbezogene Daten zu erlangen, werden beim Booten des Computersystems die Software, Firmware und die Prozesse des Bootens an sich überprüft. Somit kann sichergestellt werden, dass sichere und originale Firmware und Hardware das Booten innerhalb des Computersystems ausführen.In computer systems with safety-critical applications, it is necessary to already check and secure the booting of the computer system. Such computer systems are used, for example, to authenticate or to perform payment transactions from users. A user can authenticate himself by entering codes or biometric data. In order to make it difficult for unauthorized third parties to access the computer system and thus gain access to personal data, booting the computer system checks the software, firmware and the processes of booting itself. Thus, it can be ensured that secure and original firmware and hardware execute booting within the computer system.

Die Druckschrift EP 1 953 666 A2 beschreibt ein Verfahren zum Booten eines elektronischen Geräts und ein Verfahren, das Booten eines elektronischen Geräts zu authentifizieren.The publication EP 1 953 666 A2 describes a method of booting an electronic device and a method of authenticating the booting of an electronic device.

Aus der WO 2014/ 175 862 A1 ist ein redundanter Systembootcode in einem zweiten nichtflüchtigen Speicher bekannt.From the WO 2014/175 862 A1 a redundant system boot code is known in a second nonvolatile memory.

Es ist Aufgabe der Erfindung, ein verbessertes Verfahren zum Betrieb eines derartigen Computersystems und ein verbessertes Computersystem aufzuzeigen.It is an object of the invention to provide an improved method of operating such a computer system and an improved computer system.

Gemäß einem Aspekt der Erfindung wird die Aufgabe durch ein Verfahren zum sicheren Booten eines Computersystems gelöst. Das Verfahren umfasst hierbei die Schritte:

  • - Ausführen von Programmcode wenigstens eines Bootloaders zum Laden eines Kernels;
  • - Überprüfen des Programmcodes des Bootloaders, nachdem wenigstens ein Teil des Programmcodes des Bootloaders ausgeführt wurde; und
  • - Unterbrechen des Bootens, wenn ein Ergebnis des Überprüfens des Programmcodes des Bootloaders auf eine Manipulation des Programmcodes des Bootloaders hinweist.
According to one aspect of the invention, the object is achieved by a method for safely booting a computer system. The method comprises the steps:
  • Executing program code of at least one boot loader for loading a kernel;
  • - checking the program code of the bootloader after at least a part of the program code of the bootloader has been executed; and
  • - Suspend booting if a result of checking the program code of the boot loader indicates a manipulation of the program code of the boot loader.

Das Computersystem umfasst einen Hauptprozessor und einen Cryptoprozessor. Hierbei wird der Kernel durch den Hauptprozessor geladen. Die Überprüfung wird in dem Cryptoprozessor ausgeführt. Der Cryptoprozessor führt auch das Unterbrechen des Bootens aus, insbesondere durch Senden eines Reset-Signals an den Hauptprozessor.The computer system includes a main processor and a crypto processor. This loads the kernel through the main processor. The check is performed in the crypto processor. The crypto processor also executes booting, particularly by sending a reset signal to the main processor.

Das Computersystem umfasst zusätzlich einen Multiplexer und einen SPI-Baustein. In dem SPI-Baustein ist der Programmcode des wenigstens einen Bootloaders gespeichert. An dem Multiplexer sind der Hauptprozessor, der Cryptoprozessor und der SPI-Baustein elektrisch angeschlossen. Vor dem Schritt des Ausführens wird zusätzlich der folgende Schritt ausgeführt:

  • - Schalten des Multiplexers durch den Cryptoprozessor, so dass eine elektrische Verbindung von dem SPI-Baustein zu dem Hauptprozessor aufgebaut wird.
The computer system additionally comprises a multiplexer and an SPI module. The program code of the at least one boot loader is stored in the SPI module. At the multiplexer, the main processor, the crypto processor and the SPI module are electrically connected. Before the execution step, the following additional step is performed:
  • Switching the multiplexer through the crypto processor so that an electrical connection is established from the SPI module to the main processor.

Der Cryptoprozessor führt nach dem Schritt des Ausführens des Programmcodes des wenigstens einen Bootloaders zusätzlich folgenden Schritt aus, bevor der Schritt des Überprüfens ausgeführt wird:

  • - Schalten des Multiplexers durch den Cryptoprozessor, sodass eine elektrische Verbindung von dem SPI-Baustein zu dem Cryptoprozessor aufgebaut wird.
The crypto processor additionally performs the following step after the step of executing the program code of the at least one boot loader, before the step of checking is executed:
  • Switching the multiplexer through the crypto processor so that an electrical connection is established from the SPI module to the crypto processor.

Hierbei wird die elektrische Verbindung zwischen dem SPI-Baustein und dem Hauptprozessor unterbrochen.In this case, the electrical connection between the SPI module and the main processor is interrupted.

Die Überprüfung des Programmcodes des Bootloaders durch einen Cryptoprozessor führt zu einem hohen Sicherheitsstandard. Die Überprüfung durch den Cryptoprozessor wird parallel zu dem Booten des Computersystems durchgeführt. Hierdurch wird das Booten im Vergleich zu einem Booten mit vorhergehendem Überprüfen beschleunigt.The check of the program code of the boot loader by a crypto processor leads to a high safety standard. The review by the crypto processor is performed in parallel with the booting of the computer system. This speeds up booting compared to booting with a previous check.

Nach einem Einschaltsignal konfiguriert der Cryptoprozessor den Multiplexer so, dass zwischen dem SPI-Baustein und dem Hauptprozessor eine Verbindung aufgebaut wird. Hierdurch kann der Hauptprozessor aus dem SPI-Baustein heraus den Programmcode des wenigstens einen Bootloaders laden.After a power-on signal, the crypto processor configures the multiplexer to establish a connection between the SPI device and the main processor. This allows the main processor to load the program code of the at least one bootloader from the SPI module.

Für den Schritt des Überprüfens wird zwischen dem Cryptoprozessor und dem SPI-Baustein eine elektrische Verbindung hergestellt. Diese wird durch das Schalten des Multiplexers durch den Cryptoprozessor aufgebaut. Hierbei wird eine elektrische Verbindung zwischen dem SPI-Baustein und dem Hauptprozessor unterbrochen. Der Hauptprozessor führt während der Überprüfung des Programmcodes des Bootloaders den Kernels aus. Der Kernel muss hierbei nicht auf den SPI-Baustein zugreifen. Somit kann der Cryptoprozessor zur gleichen Zeit den Inhalt des SPI-Baustein überprüfen. Anschließend kann eine Verbindung zwischen SPI-Baustein und dem Hauptprozessor durch den Cryptoprozessor wieder hergestellt werden.For the verification step, an electrical connection is made between the crypto processor and the SPI device. This is built by switching the multiplexer through the crypto processor. In this case, an electrical connection between the SPI module and the main processor is interrupted. The main processor executes the kernels while checking the program code of the boot loader. The kernel does not need to access the SPI device. Thus, the crypto processor can check the contents of the SPI device at the same time. Subsequently, a connection between SPI module and the Main processor are restored by the crypto processor.

Nach dem Starten des Computersystems wird ein Bootloader ausgeführt. Durch den Bootloader wird das Laden eines Kernels des Computersystems initiiert. Der Programmcode des Bootloaders wird überprüft, nachdem wenigstens ein Teil des Programmcodes des Bootloaders ausgeführt wurde. Durch das Überprüfen des Bootloaders, nachdem ein Teil des Programmcodes des Bootloaders bereits ausgeführt wurde, kann das Computersystem schneller gebootet werden, als wenn Programmcode des Bootloaders überprüft würde, bevor der Bootloader ausgeführt wird.After booting the computer system, a bootloader is executed. The bootloader initiates the loading of a kernel of the computer system. The program code of the bootloader is checked after at least a part of the program code of the bootloader has been executed. Checking the boot loader after a part of the program code of the bootloader has already been executed can boot the computer system faster than if the program code of the bootloader were checked before the bootloader is executed.

Wird beim Überprüfen erkannt, dass der Programmcode des Bootloaders manipuliert wurde, wird das Booten unterbrochen. Somit bleibt die Sicherheit des Computersystems erhalten, da das Computersystem nicht vollständig bootet, ohne eine Überprüfung des Bootloaders durchzuführen.If the check detects that the program code of the bootloader has been tampered with, the boot process is interrupted. Thus, the security of the computer system is maintained since the computer system does not boot completely without performing a check on the boot loader.

In diesem Zusammenhang umfasst das Booten den Ablauf in dem Computersystem von einem Anschaltsignal bis hin zum Einnehmen eines normalen Betriebszustands.In this context, booting includes the operation in the computer system from a turn-on signal to a normal operating state.

Gemäß einer weiteren vorteilhaften Ausgestaltung wird der Schritt des Überprüfens ausgeführt, nachdem ein Ausführen des Programmcodes des Bootloaders abgeschlossen und wenigstens ein Teil des Kernels geladen wurde.According to a further advantageous embodiment, the step of checking is carried out after completing an execution of the program code of the boot loader and loading at least part of the kernel.

Der Programmcode des Bootloaders ist in irgendeinem Speicher gespeichert, der separat angesprochen werden kann, wie beispielsweise einem nicht-flüchtigen Speicherbaustein, insbesondere einem SPI-Baustein. Nach dem Laden des Kernels greift der Hauptprozessor nicht auf den Speicher des Programmcodes des Bootloaders zu, sodass die Überprüfung von dem vom Hauptprozessor unabhängigen Cryptoprozessor ausgeführt werden kann.The program code of the boot loader is stored in any memory that can be addressed separately, such as a non-volatile memory device, in particular an SPI device. After loading the kernel, the main processor does not access the memory of the program code of the boot loader, so that the check can be performed by the crypto processor independent of the main processor.

Gemäß einer weiteren vorteilhaften Ausgestaltung wird der Schritt des Überprüfens nach Ablauf einer vorbestimmten Zeit ausgeführt, nachdem das Laden des Kernels gestartet wurde.According to a further advantageous embodiment, the step of checking is carried out after a predetermined time has elapsed after the loading of the kernel has been started.

Um einen reibungsfreien zeitlichen Ablauf der Überprüfung in dem Bootvorgang zu gewährleisten, kann durch eine Zeitvorgabe, die mit dem Starten des Ladens des Kernels beginnt, festgelegt werden, zu welchem Zeitpunkt die Überprüfung stattfinden soll.In order to ensure a smooth timing of the check in the boot process, a timing that starts with starting the loading of the kernel, can be set at what time the check should take place.

Gemäß einer weiteren vorteilhaften Ausgestaltung umfasst der Schritt des Unterbrechens ein Anhalten des Hauptprozessors.According to a further advantageous embodiment, the step of interrupting comprises stopping the main processor.

Durch das Anhalten des Hauptprozessors wird der Bootvorgang unterbrochen. Das Computersystem kommt nicht in einen normalen Betriebszustand, in dem Schadsoftware ausführbar wäre. Eventuell bereits gestartete Schadprogramme werden ebenso abgebrochen, wie der Bootvorgang selbst. Insbesondere wird der Hauptprozessor durch einen Reset angehalten. Beispielsweise wird die Versorgungsspannung des Hauptprozessors unterbrochen.Stopping the main processor will interrupt the boot process. The computer system does not come into a normal operating state in which malicious software would be executable. Any malware already started will be aborted as well as the boot process itself. In particular, the main processor is stopped by a reset. For example, the supply voltage of the main processor is interrupted.

Gemäß einem zweiten Aspekt der Erfindung wird die Aufgabe durch ein Computersystem mit einem Speicher für einen Programmcode eines Bootloaders, einem Hauptprozessor und einer Einrichtung zum Überprüfen des Programmcodes des Bootloaders gelöst. Hierbei ist der Hauptprozessor dazu eingerichtet, den Bootloader auszuführen und einen Kernel zu laden. Die Einrichtung ist mit dem Speicher und dem Hauptprozessor elektrisch gekoppelt. Die Einrichtung ist dazu eingerichtet, eine Überprüfung des Programmcodes des Bootloaders durchzuführen, nachdem wenigstens ein Teil des Programmcodes des Bootloaders ausgeführt wurde. Des Weiteren ist die Einrichtung dazu eingerichtet, ein Booten des Computersystems zu unterbrechen, wenn die Überprüfung des Programmcodes des Bootloaders auf eine Manipulation des Programmcodes des Bootloaders hinweist.According to a second aspect of the invention, the object is achieved by a computer system having a memory for a program code of a boot loader, a main processor and a device for checking the program code of the boot loader. Here, the main processor is set up to run the boot loader and load a kernel. The device is electrically coupled to the memory and the main processor. The device is adapted to perform a check of the program code of the boot loader after at least a part of the program code of the boot loader has been executed. Furthermore, the device is set up to interrupt a booting of the computer system if the check of the program code of the boot loader indicates a manipulation of the program code of the boot loader.

Die Einrichtung zum Überprüfen des Programmcodes des Bootloaders umfasst einen Cryptoprozessor.The device for checking the program code of the boot loader comprises a crypto processor.

Das Computersystem weist einen SPI-Baustein auf, in dem der Speicher angeordnet ist.The computer system has an SPI module in which the memory is arranged.

Die elektrische Kopplung der Einrichtung mit dem Speicher und dem Hauptprozessor umfasst einen Multiplexer.The electrical coupling of the device to the memory and the main processor comprises a multiplexer.

Ein derartiges Computersystem kann schnell booten, bei gleichzeitig hohem Sicherheitsstandard.Such a computer system can boot quickly, while maintaining a high level of security.

Der Cryptoprozessor ist dazu eingerichtet, den Multiplexer so anzusteuern, dass zwischen dem SPI-Baustein und dem Cryptoprozessor eine elektrische Verbindung hergestellt und die elektrische Verbindung zwischen dem SPI-Baustein und dem Hauptprozessor unterbrochen wird, nachdem das Laden des Kernels gestartet wurde und bevor der Cryptoprozessor den Programmcode, der in dem SPI-Baustein gespeichert ist, zu überprüfen beginnt.The crypto processor is adapted to drive the multiplexer to establish an electrical connection between the SPI device and the crypto processor and to interrupt the electrical connection between the SPI device and the main processor after the kernel load has been started and before the cryptoprocessor begins to check the program code stored in the SPI block.

Vorteile bezüglich des zweiten Aspekts ergeben sich aus den Vorteilen bezüglich des ersten Aspekts sowie den nachfolgend beschriebenen Ausführungsbeispielen.Advantages with respect to the second aspect will be apparent from the advantages with respect to the first aspect as well as the embodiments described below.

Die Erfindung wird im Folgenden anhand von Figuren beschrieben. In den Figuren zeigen:

  • 1 ein Computersystem gemäß einer Ausgestaltung der Erfindung;
  • 2 ein Ablaufdiagramm eines Verfahrens gemäß einer Ausgestaltung der Erfindung; und
  • 3 eine weitere Ausgestaltung des Computersystems.
The invention will be described below with reference to figures. In the figures show:
  • 1 a computer system according to an embodiment of the invention;
  • 2 a flowchart of a method according to an embodiment of the invention; and
  • 3 another embodiment of the computer system.

1 zeigt eine schematische Darstellung eines Computersystems 10. Im dargestellten Ausführungsbeispiel ist das Computersystem 10 ein Bezahlterminal, mit dem ein Benutzer elektronische Zahlvorgänge vornehmen kann. In anderen Ausgestaltungen kann es sich bei dem Computersystem 10 beispielsweise um ein Mobiltelefon, einen Tablet-PC oder einen Desktop-PC handeln. Selbstverständlich sind auch weitere Arten von Computersystemen vorstellbar. 1 shows a schematic representation of a computer system 10 , In the illustrated embodiment, the computer system 10 a payment terminal with which a user can make electronic payments. In other embodiments, the computer system may be 10 For example, to act a mobile phone, a tablet PC or a desktop PC. Of course, other types of computer systems are conceivable.

Das Computersystem 10 weist einen Hauptprozessor 11 auf. Der Hauptprozessor 11 dient dazu, Prozesse des Computersystems 10 auszuführen. Beispielsweise läuft ein Betriebssystem auf dem Hauptprozessor 11 ab. Im Ausführungsbeispiel handelt es sich bei dem Hauptprozessor 11 um ein sogenanntes System on a Chip. Hierbei fallen dem Hauptprozessor 11 verschiedene Funktionen zu, die beispielsweise in anderen Ausgestaltungen, wie einem Desktop-PC, auf verschiedene Komponenten verteilt sein können.The computer system 10 has a main processor 11 on. The main processor 11 serves to processes the computer system 10 perform. For example, an operating system is running on the main processor 11 from. In the exemplary embodiment, it is the main processor 11 a so-called system on a chip. This is the main processor 11 various functions, which may be distributed to various components, for example, in other embodiments, such as a desktop PC.

Das Computersystem 10 weist des Weiteren einen Speicherbaustein mit einem seriellen peripheren Anschluss (engl.: serial peripheral interface, kurz: SPI) auf. Dieser Der SPI-Baustein 13 umfasst im Ausführungsbeispiel einen Speicherbereich, auf dem Programmcode eines Bootloaders gespeichert ist. Der Bootloader umfasst hierbei einen Bootloader einer ersten Ebene und einen Bootloader einer zweiten Ebene. Nach einem Anschaltsignal des Computersystems 10 und einer Initialisierung des Bootloaders der ersten Ebene (engl.: first stage boot loader) wird der Bootloader der zweiten Ebene (engl.: second stage boot loader) automatisch von dem Bootloader der ersten Ebene gestartet und anschließend ausgeführt. Die Aufgabe der Bootloader ist es, das Computersystem 10 auf ein Laden des Betriebssystems und somit auf einen normalen Betriebszustand vorzubereiten. Insbesondere umfasst das Booten das Ausführen eines Systembootstrap, eines Bootloaders erster Ebene und eines Bootloaders zweiter Ebene sowie das vollständige Laden eines Kernels, eines Initialisierungsdateisystems und eines Rootdateisystems (initram file system, root file system).The computer system 10 further includes a memory device having a serial peripheral interface (SPI). This The SPI building block 13 in the exemplary embodiment comprises a memory area, is stored on the program code of a boot loader. The bootloader here comprises a bootloader of a first level and a bootloader of a second level. After a turn-on signal from the computer system 10 and initialization of the first stage boot loader, the second stage boot loader is automatically started by the first level boot loader and then executed. The task of the bootloader is to use the computer system 10 to prepare for a loading of the operating system and thus to a normal operating state. In particular, booting includes performing a system bootstrap, a first level bootloader, and a second level boot loader, as well as loading a kernel, an initialization file system, and an initram file system.

Durch den Hauptprozessor 11 wird zum Ausführen eines Betriebssystems ein Kernel geladen. Das Laden des Kernels wird durch den Bootloader der zweiten Ebene initialisiert. Der Hauptprozessor lädt den Kernel hierbei aus einem weiteren Speicher, der mit dem Hauptprozessor verbunden ist. In einer weiteren Ausführungsform lädt der Hauptprozessor den Kernel aus dem SPI-Baustein 13.Through the main processor 11 For example, a kernel is loaded to run an operating system. The loading of the kernel is initialized by the bootloader of the second level. The main processor loads the kernel from another memory connected to the main processor. In another embodiment, the main processor loads the kernel from the SPI device 13 ,

Im Ausführungsbeispiel sind der Hauptprozessor 11 und der SPI-Baustein 13 über einen Multiplexer 14 verbunden. Zusätzlich ist an dem Multiplexer 14 ein Cryptoprozessor 12 angeschlossen. Im bevorzugten Ausführungsbeispiel ist der Cryptoprozessor 12 ein Chip, der einen hohen Sicherheitsstandard aufweist und dessen Firmware für Sicherheitsüberprüfungen programmiert werden kann. Der Cryptoprozessor 12 kann den Multiplexer 14 ansteuern. Insbesondere kann der Cryptoprozessor 12 eine Verbindung des SPI-Bausteins 13 von dem Hauptprozessor 11 zu dem Cryptoprozessor 12 umschalten. Hierbei sind dann entweder der Cryptoprozessor 12 oder der Hauptprozessor 11 mit dem SPI-Baustein 13 elektrisch gekoppelt.In the embodiment, the main processor 11 and the SPI building block 13 via a multiplexer 14 connected. In addition, at the multiplexer 14 a crypto processor 12 connected. In the preferred embodiment, the crypto processor is 12 a chip that has a high security standard and whose firmware can be programmed for security checks. The crypto processor 12 can the multiplexer 14 drive. In particular, the cryptoprocessor 12 a connection of the SPI module 13 from the main processor 11 to the crypto processor 12 switch. Here then either the crypto processor 12 or the main processor 11 with the SPI module 13 electrically coupled.

Der Cryptoprozessor 12 ist des Weiteren mit dem Hauptprozessor 11 elektronisch gekoppelt, sodass der Cryptoprozessor 12 wenigstens ein Reset-Signal an den Hauptprozessor 11 senden kann.The crypto processor 12 is further with the main processor 11 electronically coupled, so the crypto processor 12 at least one reset signal to the main processor 11 can send.

2 zeigt ein Flussdiagramm für ein Verfahren zum Betrieb des Computersystems 10 gemäß dem oben beschriebenen Ausführungsbeispiel. Nach dem Starten des Computersystems 10 steuert der Cryptoprozessor 12 den Multiplexer 14 so an, dass der Multiplexer eine elektrische Verbindung zwischen dem SPI-Baustein 13 und dem Hauptprozessor 11 herstellt. 2 shows a flowchart for a method for operating the computer system 10 according to the embodiment described above. After starting the computer system 10 controls the crypto processor 12 the multiplexer 14 such that the multiplexer establishes an electrical connection between the SPI device 13 and the main processor 11 manufactures.

Im Schritt 22 wird der Bootloader geladen und ausgeführt. Dies umfasst das Laden und Ausführen des Bootloaders erster Stufe und des Bootloaders zweiter Stufe. Hierbei wird der Bootloader zweiter Stufe von dem Bootloader erster Stufe geladen, da der Speicher des Bootloaders der ersten Stufe zu gering ist, um alle Peripherie anzusprechen und zu initialisieren.In step 22 the bootloader is loaded and executed. This includes loading and running the first-level bootloader and the second-level boot loader. In this case, the second-stage boot loader is loaded by the first-stage boot loader because the first-stage boot loader memory is too small to address and initialize all peripherals.

Nach dem Ausführen des Bootloaders in Schritt 22 wird im Hauptprozessor 11 das Laden des Kernels in Schritt 23 gestartet. Im Ausführungsbeispiel greift der Hauptprozessor 11 während des Ladens des Kernels nicht auf den SPI-Baustein 13 zu.After running the bootloader in step 22 will be in the main processor 11 loading the kernel in step 23 started. In the embodiment, the main processor accesses 11 while loading the kernel, not on the SPI device 13 to.

Da der SPI-Baustein 13 nicht von dem Hauptprozessor 11 angesprochen wird, während der Kernel lädt, kann der Cryptoprozessor 12 auf den SPI-Baustein 13 zugreifen und die sicherheitsrelevante Überprüfung des Programmcodes des Bootloaders durchführen. Hierzu steuert der Cryptoprozessor 12 in Schritt 24 den Multiplexer so an, dass zwischen dem SPI-Baustein 13 und dem Cryptoprozessor 12 eine elektrische Verbindung hergestellt wird. Die elektrische Verbindung zwischen dem SPI-Baustein 13 und dem Hauptprozessor 11 wird hierbei unterbrochen.Because the SPI building block 13 not from the main processor 11 can be addressed while the kernel loads, the crypto processor 12 on the SPI module 13 access and carry out the safety-relevant check of the program code of the bootloader. The crypto processor controls this 12 in step 24 the multiplexer so that between the SPI module 13 and the crypto processor 12 an electrical connection is made. The electrical connection between the SPI building block 13 and the main processor 11 is interrupted here.

Im Ausführungsbeispiel schaltet der Cryptoprozessor 12 den Multiplexer 14 in Schritt 24 fünf Sekunden nach dem Starten des Ladens des Kernels in Schritt 23 um. In einer alternativen Ausgestaltung schaltet der Cryptoprozessor in Schritt 24 den Multiplexer nach einem Zeitablauf, der unmittelbar von dem ersten Schalten des Multiplexers in Schritt 21 abhängt. Hierbei wird dem Bootloader ein vorgegebener Zeitraum zum Initialisieren des Ladens des Kernels zur Verfügung gestellt.In the embodiment, the crypto processor switches 12 the multiplexer 14 in step 24 five seconds after starting to load the kernel in step 23 around. In an alternative embodiment, the crypto processor switches in step 24 the multiplexer after a time lapse, immediately from the first switching of the multiplexer in step 21 depends. Here, the boot loader is provided with a predetermined period of time to initialize the loading of the kernel.

Der Cryptoprozessor 12 beginnt nun in Schritt 25 den Programmcode, der in dem SPI-Baustein 13 gespeichert ist, zu überprüfen. Insbesondere wird der Programmcode des Bootloaders, beziehungsweise des Bootloaders der ersten Stufe und/oder des Bootloaders der zweiten Stufe überprüft.The crypto processor 12 now starts in step 25 the program code contained in the SPI building block 13 saved, check. In particular, the program code of the boot loader, or the boot loader of the first stage and / or the boot loader of the second stage is checked.

Hierzu bildet der Cryptoprozessor 12 aus den Speicherdaten des SPI-Bausteins 13 einen Hashwert, den der Cryptoprozessor 12 anhand eines Referenzwertes überprüft. Hierzu ist der Referenzwert oder eine Vergleichstabelle mit dem Referenzwert in einem sicheren Speicher des Cryptoprozessors hinterlegt. In einem weiteren Ausführungsbeispiel ist der Referenzwert in einem externen, mit dem Cryptoprozessor verbundenen Speicher abgelegt.This is done by the cryptoprocessor 12 from the memory data of the SPI block 13 a hash value that the crypto processor does 12 checked against a reference value. For this purpose, the reference value or a comparison table with the reference value is stored in a secure memory of the crypto processor. In another embodiment, the reference value is stored in an external memory connected to the crypto processor.

Führt die Überprüfung zu einem positiven Ergebnis, ist anzunehmen, dass der Programmcode des Bootloaders in Ordnung ist. Das Computersystem 10 setzt den Bootvorgang bis zu Schritt 26 fort und beendet somit das Booten ohne Unterbrechung durch den Cryptoprozessor 12. Hierbei lädt der Hauptprozessor 11 den Kernel vollständig und startet im Anschluss ein Betriebssystem. Dass der Bootvorgang hierbei durch den Cryptoprozessor nicht beeinträchtigt wird, ist durch den gestrichelten Pfeil in 2 angedeutet.If the check leads to a positive result, it can be assumed that the program code of the boot loader is in order. The computer system 10 sets the boot up to step 26 thus stopping the boot without interruption by the crypto processor 12 , This loads the main processor 11 complete the kernel and then start an operating system. The fact that the boot process is not affected by the cryptoprocessor is indicated by the dashed arrow in 2 indicated.

Ist das Ergebnis der Überprüfung in Schritt 25 negativ, so weist dies auf eine Manipulation des Programmcodes des Bootloaders im SPI-Baustein 13 hin. Der Cryptoprozessor 12 sendet nun in Schritt 27 ein Resetsignal an den Hauptprozessor 11. Durch das Resetsignal wird die Energieversorgung des Hauptprozessors 11 unterbrochen und der Bootvorgang unverzüglich abgebrochen. Im Ausführungsbeispiel wird das Resetsignal dem Hauptprozessor 11 über einen GPIO (engl.: general purpose input/output) Pin des Cryptoprozessors 12 gesendet.Is the result of the review in step 25 negative, this indicates a manipulation of the program code of the boot loader in the SPI block 13 out. The crypto processor 12 send in step now 27 a reset signal to the main processor 11 , The reset signal turns on the power supply of the main processor 11 interrupted and the boot process stopped immediately. In the embodiment, the reset signal becomes the main processor 11 via a GPIO (general purpose input / output) pin of the crypto processor 12 Posted.

Zusammen mit dem Setzen des Reset-Signals kann die Crypto-Firmware des Cryptoprozessors zusätzlich eine Markierung in einem sogenannten Tamperregister setzen. Hierdurch wird hinterlegt, dass eine Manipulation detektiert wurde. Über eine Statusanzeige, wie beispielsweise eine LED-Anzeige, kann ein Warnsignal ausgegeben werden. Die Statusanzeige ist sowohl am Hauptprozessor 11 als auch am Cryptoprozessor 12 angeschlossen. Durch das Setzen des Reset-Signals am Hauptprozessor 11 ist er ohne Spannung und hat keinen Zugriff auf die Statusanzeige. Somit wird die Statusanzeige von dem Cryptoprozessor 12 gesteuert. So ist sichergestellt, dass die Statusanzeige, die eine Manipulation anzeigt, auch von dem Cryptoprozessor 12 gesteuert wird.Together with the setting of the reset signal, the crypto firmware of the crypto processor can additionally set a marker in a so-called tamper register. As a result, it is deposited that a manipulation has been detected. A status signal, such as an LED display, can be used to emit a warning signal. The status indicator is on both the main processor 11 as well as the crypto processor 12 connected. By setting the reset signal on the main processor 11 he is without voltage and has no access to the status display. Thus, the status indicator is from the crypto processor 12 controlled. This ensures that the status indicator that indicates a manipulation is also from the crypto processor 12 is controlled.

Eine alternative, in 3 dargestellte Methode um ein sicheres und schnelles Booten des Computersystems 10 zu gewährleisten ist es, einen SPI-Baustein im Cryptoprozessor 32 zu emulieren. Hierbei weist ein Computersystem 30 keinen physikalischen SPI-Baustein auf, auf dem ein Bootloader gespeichert ist. Ebenso weist das Computersystem 30 keinen Multiplexer auf. Der Cryptoprozessor 32 ist elektronisch direkt mit einem Hauptprozessor 31 gekoppelt.An alternative, in 3 illustrated method for a safe and fast booting of the computer system 10 it is to ensure an SPI module in the crypto processor 32 to emulate. This is indicated by a computer system 30 no physical SPI device on which a bootloader is stored. Likewise, the computer system 30 no multiplexer. The crypto processor 32 is electronically directly with a main processor 31 coupled.

Empfängt der Cryptoprozessor ein Einschaltsignal, so startet der Cryptoprozessor 32 eine Emulierung eines SPI-Bausteins im Cryptoprozessor 32. Hierfür wird ein sicherer Speicherbereich 33 verwendet. Beim sicheren Speicherbereich 33 handelt es sich beispielsweise um ein Secure EEPROM. Der sichere Speicherbereich 33 ist über eine sichere Verbindung an den Cryptoprozessor 32 angeschlossen, auf den lediglich der Cryptoprozessor 32 Zugriff hat. In einem alternativen Ausführungsbeispiel befindet sich der sichere Speicherbereich 33 innerhalb des Cryptoprozessors 32.If the crypto processor receives a switch-on signal, the crypto-processor starts 32 an emulation of an SPI device in the crypto processor 32 , This is a safe storage area 33 used. In the safe storage area 33 For example, it is a secure EEPROM. The secure storage area 33 is via a secure connection to the crypto processor 32 connected, on the only the Cryptoprozessor 32 Has access. In an alternative embodiment, the secure memory area is located 33 within the crypto processor 32 ,

Durch die Realisierung der Emulation eines SPI-Bausteins im sicheren Speicherbereich 33 des Cryptoprozessors 32 ist ein sicherer Anker zum Starten einer gesicherten Programmcodeüberprüfung im Bootloader der ersten Stufe geschaffen. Von diesem sicheren Anker kann weiterer Programmcode sicher ausgeführt werden. Der Cryptoprozessor 32 und die auf dem Cryptoprozessor 32 gespeicherte Firmware gilt als Trusted Element und somit als vertrauenswürdig. Eine Programmierung des im sicheren Speicherbereich 33 gespeicherten Bootloaders, bzw. des Programmcodes des Bootloaders kann ausschließlich über einen sicheren Algorithmus des Cryptoprozessors 32 erfolgen (Flashalgorithmus). Somit ist sichergestellt, dass keine unberechtigten Dritten Programmcode auf den Cryptoprozessor 32 aufspielen.By implementing the emulation of an SPI module in the safe memory area 33 of the crypto processor 32 is a secure anchor for starting a secure code checking in the boot loader of the first stage created. From this secure anchor further program code can be executed safely. The crypto processor 32 and those on the crypto processor 32 stored firmware is considered a trusted element and thus trusted. A programming of the in the safe memory area 33 stored Bootloaders, or the program code of the boot loader can only via a secure algorithm of the crypto processor 32 take place (Flashalgorithmus). Thus it is guaranteed that no unauthorized third party program code on the Cryptoprozessor 32 play.

Nach der Emulation des Speicherbausteins kann aus dem Cryptoprozessor 32 heraus der Bootloader, insbesondere der Bootloader der ersten Stufe und der Bootloader der zweiten Stufe, ausgeführt werden. Da die Emulation des SPI-Bausteins 13 im Cryptoprozessor 32 stattfindet, ist keine Überprüfung des Programmcodes des Bootloaders notwendig. Das Computersystem 30 kann somit direkt Durchbooten und benötigt keine Unterbrechung oder Überprüfung des Programmcodes des Bootloaders.After the emulation of the memory module can from the Cryptoprozessor 32 out the boot loader, especially the first stage boot loader and the second stage boot loader. Because the emulation of the SPI building block 13 in the crypto processor 32 takes place, no check of the program code of the boot loader is necessary. The computer system 30 can thus directly Durchbooten and requires no interruption or verification of the program code of the boot loader.

BezugszeichenlisteLIST OF REFERENCE NUMBERS

10, 3010, 30
Computersystemcomputer system
11, 3111, 31
Hauptprozessormain processor
12, 3212, 32
CryptoprozessorCrypto processor
1313
SPI-BausteinSPI device
1414
Multiplexermultiplexer
3333
sicherer Speicherbereichsecure storage area
21 - 2721 - 27
Verfahrensschrittesteps

Claims (5)

Verfahren zum sicheren Booten eines Computersystems (10) mit einem Hauptprozessor (11), einem Cryptoprozessor (12), einem Multiplexer (14) und einem SPI-Baustein (13), wobei in dem SPI-Baustein (13) der Programmcode des wenigstens einen Bootloaders gespeichert ist und an den Multiplexer (14) der Hauptprozessor (11), der Cryptoprozessor (12) und der SPI-Baustein (13) elektrisch angeschlossen sind, wobei das Verfahren die folgenden Schritte umfasst: - Schalten des Multiplexers (14) durch den Cryptoprozessor (12), so dass eine elektrische Verbindung von dem SPI-Baustein (13) zu dem Hauptprozessor (11) aufgebaut wird; - Ausführen von Programmcode wenigstens eines Bootloaders zum Laden eines Kernels nach dem Schritt des Schaltens des Multiplexers, wobei der Kernel durch den Hauptprozessor (11) geladen wird; - Schalten des Multiplexers (14) durch den Cryptoprozessor (12) nach dem Schritt des Ausführens des Programmcodes des wenigstens einen Bootloaders, so dass eine elektrische Verbindung von dem SPI-Baustein (13) zu dem Cryptoprozessor (12) aufgebaut und die elektrische Verbindung zwischen dem SPI-Baustein (13) und dem Hauptprozessor (11) unterbrochen wird; - Überprüfen des Programmcodes des Bootloaders durch den Cryptoprozessor (12) nachdem eine elektrische Verbindung von dem SPI-Baustein (13) zu dem Cryptoprozessor (12) aufgebaut wurde, nachdem wenigstens ein Teil des Programmcodes des Bootloaders ausgeführt wurde; und - Unterbrechen des Bootens durch den Cryptoprozessor (12), wenn ein Ergebnis des Überprüfens des Programmcodes des Bootloaders auf eine Manipulation des Programmcodes des Bootloaders hinweist.Method for safely booting a computer system (10) having a main processor (11), a crypto processor (12), a multiplexer (14) and an SPI module (13), wherein in the SPI module (13) the program code of the at least one Bootloaders is stored and to the multiplexer (14) of the main processor (11), the Cryptoprozessor (12) and the SPI module (13) are electrically connected, the method comprising the following steps: - switching the multiplexer (14) by the crypto processor (12) so that an electrical connection is established from the SPI module (13) to the main processor (11); Executing program code of at least one boot loader for loading a kernel after the step of switching the multiplexer, the kernel being loaded by the main processor (11); Switching the multiplexer (14) by the crypto-processor (12) after the step of executing the program code of the at least one bootloader so as to establish an electrical connection from the SPI device (13) to the crypto-processor (12) and establish the electrical connection between the SPI module (13) and the main processor (11) is interrupted; - checking the program code of the boot loader by the crypto processor (12) after establishing an electrical connection from the SPI module (13) to the crypto processor (12) after at least a part of the program code of the bootloader has been executed; and - interrupting the booting by the crypto processor (12) if a result of the checking of the program code of the boot loader indicates a manipulation of the program code of the boot loader. Verfahren nach Anspruch 1, wobei der Schritt des Überprüfens ausgeführt wird, nachdem ein Ausführen des Programmcodes des Bootloaders abgeschlossen und wenigstens ein Teil des Kernels geladen wurde.Method according to Claim 1 wherein the step of checking is performed after completing an execution of the program code of the boot loader and loading at least part of the kernel. Verfahren nach einem der Ansprüche 1 oder 2, wobei der Schritt des Überprüfens nach Ablauf einer vorbestimmten Zeit ausgeführt wird, nachdem das Laden des Kernels gestartet wurde.Method according to one of Claims 1 or 2 wherein the step of checking is performed after a lapse of a predetermined time after the kernel load has been started. Verfahren nach einem der Ansprüche 1 bis 3, wobei der Schritt des Unterbrechens ein Anhalten des Hauptprozessors (11) umfasst.Method according to one of Claims 1 to 3 wherein the step of interrupting comprises stopping the main processor (11). Computersystem (10) mit einem Speicher für einen Programmcode eines Bootloaders, einem Hauptprozessor (11) und einer Einrichtung zum Überprüfen des Programmcodes des Bootloaders, wobei der Hauptprozessor (11) dazu eingerichtet ist, den Bootloader auszuführen und einen Kernel zu laden, und wobei die Einrichtung mit dem Speicher und dem Hauptprozessor (11) elektrisch gekoppelt ist und dazu eingerichtet ist, eine Überprüfung des Programmcodes des Bootloaders durchzuführen, nachdem wenigstens ein Teil des Programmcodes des Bootloaders ausgeführt wurde, und das Booten des Computersystems (10) zu unterbrechen, wenn ein Ergebnis des Überprüfens des Programmcodes des Bootloaders auf eine Manipulation des Programmcodes des Bootloaders hinweist, wobei die Einrichtung zum Überprüfen des Programmcodes des Bootloaders einen Cryptoprozessor (12) umfasst, wobei das Computersystem (10) einen SPI-Baustein (13) aufweist, in dem der Speicher angeordnet ist, wobei die elektrische Kopplung der Einrichtung mit dem Speicher und dem Hauptprozessor (11) einen Multiplexer umfasst, wobei der Cryptoprozessor (12) dazu eingerichtet ist, den Multiplexer so anzusteuern, dass zwischen dem SPI-Baustein (13) und dem Cryptoprozessor (12) eine elektrische Verbindung hergestellt und die elektrische Verbindung zwischen dem SPI-Baustein (13) und dem Hauptprozessor (11) unterbrochen wird, nachdem das Laden des Kernels gestartet wurde und bevor der Cryptoprozessor (12) den Programmcode, der in dem SPI-Baustein (13) gespeichert ist, zu überprüfen beginnt.A computer system (10) having a memory for a program code of a boot loader, a main processor (11) and a device for checking the program code of the boot loader, wherein the main processor (11) is adapted to execute the bootloader and load a kernel, and wherein the Device is electrically coupled to the memory and the main processor (11) and is adapted to perform a check of the program code of the boot loader after at least a part of the program code of the boot loader has been executed, and to interrupt the booting of the computer system (10), if a The result of checking the program code of the boot loader indicates a manipulation of the program code of the boot loader, wherein the device for checking the program code of the boot loader comprises a crypto processor (12), the computer system (10) having an SPI block (13) in which the Memory is arranged, wherein the electrical coupling of the Device with the memory and the main processor (11) comprises a multiplexer, wherein the crypto-processor (12) is adapted to control the multiplexer so that between the SPI module (13) and the crypto-processor (12) made an electrical connection and the electrical connection between the SPI device (13) and the main processor (11) is interrupted after the loading of the kernel has been started and before the crypto processor (12) checks the program code stored in the SPI device (13) starts.
DE102015108504.6A 2015-05-29 2015-05-29 Method for safely booting a computer system and computer system Expired - Fee Related DE102015108504B4 (en)

Priority Applications (4)

Application Number Priority Date Filing Date Title
DE102015108504.6A DE102015108504B4 (en) 2015-05-29 2015-05-29 Method for safely booting a computer system and computer system
PCT/EP2016/055968 WO2016192867A1 (en) 2015-05-29 2016-03-18 Method for the secure booting of a computer system and computer system
US15/578,049 US10540500B2 (en) 2015-05-29 2016-03-18 Method of securely booting a computer system and a computer system
EP16711238.2A EP3304403B1 (en) 2015-05-29 2016-03-18 Method for the secure booting of a computer system and computer system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102015108504.6A DE102015108504B4 (en) 2015-05-29 2015-05-29 Method for safely booting a computer system and computer system

Publications (2)

Publication Number Publication Date
DE102015108504A1 DE102015108504A1 (en) 2016-12-01
DE102015108504B4 true DE102015108504B4 (en) 2019-05-02

Family

ID=55588260

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102015108504.6A Expired - Fee Related DE102015108504B4 (en) 2015-05-29 2015-05-29 Method for safely booting a computer system and computer system

Country Status (4)

Country Link
US (1) US10540500B2 (en)
EP (1) EP3304403B1 (en)
DE (1) DE102015108504B4 (en)
WO (1) WO2016192867A1 (en)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10069633B2 (en) * 2016-09-30 2018-09-04 Data I/O Corporation Unified programming environment for programmable devices
US10747548B2 (en) * 2018-02-06 2020-08-18 Dell Products, L.P. Manufacturing information handling systems with operating system-specific hardware and/or firmware components
US11714910B2 (en) * 2018-06-13 2023-08-01 Hewlett Packard Enterprise Development Lp Measuring integrity of computing system
DE102018213615A1 (en) * 2018-06-20 2019-12-24 Robert Bosch Gmbh Cryptography module and operating method therefor
CN116383091B (en) * 2023-05-29 2023-08-29 珠海妙存科技有限公司 Starting method and starting device of eMMC verification platform and storage medium

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1953666A2 (en) 2007-02-02 2008-08-06 Samsung Electronics Co., Ltd. Method of booting electronic device and method of authenticating boot of electronic device
WO2014175862A1 (en) 2013-04-23 2014-10-30 Hewlett-Packard Development Company, L.P. Redundant system boot code in a secondary non-volatile memory

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4537908B2 (en) * 2005-03-29 2010-09-08 株式会社東芝 Processor, memory, computer system and system LSI
DE102006046456B4 (en) * 2006-09-29 2009-11-05 Infineon Technologies Ag Circuit arrangement, method for starting up a circuit arrangement, method for operating a circuit arrangement and computer program products
US7917741B2 (en) * 2007-04-10 2011-03-29 Standard Microsystems Corporation Enhancing security of a system via access by an embedded controller to a secure storage device
US20090193211A1 (en) * 2008-01-24 2009-07-30 Broadcom Corporation Software authentication for computer systems
TW201009706A (en) * 2008-08-22 2010-03-01 Asustek Comp Inc Update method for basic input/output system and update system thereof
US9118666B2 (en) * 2010-06-30 2015-08-25 Google Inc. Computing device integrity verification
KR101897605B1 (en) * 2012-02-24 2018-09-12 삼성전자 주식회사 Method and apparatus for securing integrity of mobile termninal
US9325506B2 (en) * 2014-09-23 2016-04-26 Red Hat, Inc. Cryptographically enforcing strict separation of environments

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1953666A2 (en) 2007-02-02 2008-08-06 Samsung Electronics Co., Ltd. Method of booting electronic device and method of authenticating boot of electronic device
WO2014175862A1 (en) 2013-04-23 2014-10-30 Hewlett-Packard Development Company, L.P. Redundant system boot code in a secondary non-volatile memory

Also Published As

Publication number Publication date
EP3304403A1 (en) 2018-04-11
WO2016192867A1 (en) 2016-12-08
US20180150637A1 (en) 2018-05-31
DE102015108504A1 (en) 2016-12-01
US10540500B2 (en) 2020-01-21
EP3304403B1 (en) 2021-06-09

Similar Documents

Publication Publication Date Title
DE102015108504B4 (en) Method for safely booting a computer system and computer system
DE112005002985B4 (en) A method for setting up a trusted runtime environment in a computer
DE10393662T5 (en) Providing a safe execution mode in a preboot environment
CN109241745B (en) Trusted starting method and device of computing platform
WO2017167589A1 (en) Method, processor and device for checking the integrity of user data
DE102015217933B4 (en) Device for processing data and method for operating such a device
DE102010000461A1 (en) Power-on certification procedure for workstation and power-on certification system
DE102013213314A1 (en) Deposit at least one computable integrity measure in a memory area of a memory
EP2541455B1 (en) Method and process for PIN entries in a consistent software stack in cash machines
DE112018006401T5 (en) TRANSPARENTLY ASSIGNED FLASH MEMORY SECURITY
EP3811262A1 (en) Computing device and method for operating same
CN111859373A (en) Defense method and device for HID attack and computer equipment
DE102014204417A1 (en) Apparatus and method for detecting a manipulation of a program code
EP3752911B1 (en) Method for installing a program code packet onto a device, device, and motor vehicle
EP4028878A1 (en) Method for securely starting device software, in particular an operating system, of an electronic device
DE102012217312B4 (en) Method and system for updating code in processing systems
DE10208442A1 (en) Protection of a high security server against attack, e.g. by viral or Trojan horse attack, by registering a checksum for an authorized program in protected memory at run time thus preventing running of unauthorized programs
WO2015078809A1 (en) Method for a secure boot-up process of an electronic system
EP3072080B1 (en) Method and device for protecting a computing apparatus against manipulation
WO2004023299A2 (en) Method for initialising programmable systems
DE102013108073A1 (en) DATA PROCESSING ARRANGEMENT AND METHOD FOR DATA PROCESSING
EP3876123B1 (en) Arrangement and operating method for a secure start-up of an electronic device
DE102021212994B3 (en) Method for detecting anomalies indicating tampering during a secure boot process of a software-controlled device
DE102020211346A1 (en) Method for booting an electronic device
AT517154B1 (en) Monitoring the startup process of an integrated circuit

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R084 Declaration of willingness to licence
R016 Response to examination communication
R081 Change of applicant/patentee

Owner name: FUJITSU CLIENT COMPUTING LIMITED, JP

Free format text: FORMER OWNER: FUJITSU TECHNOLOGY SOLUTIONS INTELLECTUAL PROPERTY GMBH, 80807 MUENCHEN, DE

Owner name: FUJITSU CLIENT COMPUTING LIMITED, KAWASAKI-SHI, JP

Free format text: FORMER OWNER: FUJITSU TECHNOLOGY SOLUTIONS INTELLECTUAL PROPERTY GMBH, 80807 MUENCHEN, DE

R082 Change of representative

Representative=s name: EPPING HERMANN FISCHER PATENTANWALTSGESELLSCHA, DE

R018 Grant decision by examination section/examining division
R020 Patent grant now final
R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee