WO2016139090A1 - Überwachung des startvorgangs einer integrierten schaltung - Google Patents
Überwachung des startvorgangs einer integrierten schaltung Download PDFInfo
- Publication number
- WO2016139090A1 WO2016139090A1 PCT/EP2016/053816 EP2016053816W WO2016139090A1 WO 2016139090 A1 WO2016139090 A1 WO 2016139090A1 EP 2016053816 W EP2016053816 W EP 2016053816W WO 2016139090 A1 WO2016139090 A1 WO 2016139090A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- integrated circuit
- interface
- sfi
- memory
- dif
- 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.)
- Ceased
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
- G06F21/575—Secure boot
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/78—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
Definitions
- the invention relates to a method for monitoring the starting process (boot process) of an integrated circuit, wherein the starting process takes place using a start memory located outside the integrated circuit, which is connected to the integrated circuit by means of a start interface arranged in the integrated circuit.
- ASICs application-specific integrated circuits
- single substrate eg semiconductor substrate, etc.
- Circuit consists of a large number of
- Circuit traces on or in a monocrystalline substrate Only through this integration, it is possible to extensive
- SoC system-on-chip
- SoC system-on-chip
- IP core units or IP blocks eg Processor, controller units, peripheral blocks, etc.
- IP blocks are purchased, for example, as a finished unit or by means of design licenses and then used directly or in an adapted form in a new one-chip system. Missing units for the one-chip system can then be developed eg for the finished ASIC.
- the units of such a one-chip system are connected internally via a bus system.
- Integrated circuits can be realized by a so-called Field Programmable Gate Array (FPGA).
- An FGPA is a digital integrated circuit (IC) into which a logic circuit can be programmed.
- the essential basic structure of an FPGA is an array of basic blocks, each with a simple programmable lookup table (LUT) and a 1-bit register (flip-flop).
- LUT simple programmable lookup table
- F flip-flop 1-bit register
- Degrees of freedom configurable. For connections over long distances, there is a grid of bus structures between the basic blocks to which inputs and outputs can be connected. Other programmable switching components in the crossing points of the grid allow the signal distribution over the entire chip.
- Input / output blocks are used for communication with the outside world, via which the connections of the FPGA are connected to the switching matrix.
- Clock generators generate outgoing of clocks provided at the inputs all internal clocks required for the application.
- Complex FPGAs include additional hard-wired functions, such as: B. memory blocks (so-called block RAM).
- FPGAs found in the area of system-on-chip (SoC) applications have a number of mostly complex hard cores to accommodate a complete system.
- Hard cores are fixed and unchanging circuits of mostly complex ones
- Function blocks such as microcontroller or Ethernet interfaces.
- Connection structures typically occur once before each use, causing the FPGA to have a specific function
- Programs such as for starting the function of the integrated circuit, such as the so-called second level boot code, are not stored in the integrated circuit but are stored in separate electronic flash memories, e.g. Flash devices, which are located on the same board as the integrated circuit.
- a flash memory more precisely a Flash EEPROM, is a nonvolatile electronic memory module whose stored information can be erased electrically, whereby always certain blocks can be erased and reprogrammed.
- the launcher usually in several parts of the program from the flash memory in the
- (CRTM) module captures the underlying hardware and stores a signature metric in a protected
- start interface lock Since the start interface lock according to the invention is immutable in hardware, and not by software,
- the time required for the startup process can most easily be measured by a partial circuit timer of the integrated circuit.
- the amount of time needed for the startup process is preferably set at the time of manufacture of the integrated circuit with at least one electronic programmable fuse included in the integrated circuit.
- Such an electronic fuse is also referred to as eFUSE.
- eFUSE electronic fuse
- several eFUSEs are usually necessary.
- These fuses are hardware components that can be electrically programmed once Programming is then no longer changeable. During programming, the fuse is blown with the aid of a supplied fuse voltage.
- An integrated circuit usually has additional interfaces in addition to the start interface. If they are already released at the beginning of the boot process, so if the boot process (boot) not yet
- Interface of the integrated circuit is released after completion of the boot process.
- the start memory is preferably designed as a serial flash memory.
- An integrated circuit comprises at least one start interface, by means of which a start memory can be connected to the integrated circuit, and is characterized in that in the integrated circuit, a hardware unit is provided, which is designed so that after expiration one given for the startup, not variable duration of the start interface is disabled.
- the preferred embodiment of the integrated circuit provides that the hardware unit has a timer executed as a subcircuit and at least one electronically programmable fuse.
- the hardware unit may be designed so that at least one further interface of the integrated circuit in
- the further interface can not be set until the startup procedure has expired
- the release and blocking of the start interface and possibly the other interface can be achieved by the hardware unit is designed so that these interfaces upstream of a dynamic interface release.
- Fig. 1 is a schematic representation of an integrated circuit
- Fig. 2 is a schematic representation of a
- FIG. 1 an integrated circuit IC according to the prior art is shown, with a processor CPU and a random access memory RAM, wherein CPU and RAM via a
- Interconnect I e.g. a bus system, interconnected.
- connection system e.g. an internal boot memory (Boot ROM) B-ROM, a
- a start memory SF is provided and designed as a serial flash memory (serial flash).
- the start memory SF is permanently connected to the interface SFI.
- a mass memory (Mass Storage) MS can be provided, which is firmly connected to the corresponding interface MSI.
- the mass storage MS could be releasably connected to the interface MSI, such as SD card.
- the MSI interface is already enabled during the startup process.
- the integrated circuit After a power-on reset or a restart, the integrated circuit must be initialized. That is, after the application of an operating voltage, the integrated circuit is selectively transferred to a defined initial state. This is necessary because integrated Circuits comprise both combinatorial functions (logic gates) and memory elements such as flip-flops or RAM cells. These may behave unpredictably for the sake of mutual influence and the physically slightly different application of power during the switch-on time point and thus also assume unpredictable states even after switching on. This is the entire integrated Circuit
- the processor CPU accesses the boot memory B-ROM, which is indicated by an arrow. During this boot process will be too
- second level boot code which is stored on the start memory SF, see corresponding arrow
- other programs and / or data are loaded into the RAM memory, which on the
- Mass storage MS are stored, and which are also necessary for the subsequent normal operation of the integrated circuit.
- Mass storage MS done so that the boot process is not completed correctly and the integrated circuit IC normal operation is not or not properly
- This integrated circuit IC is basically the same as that in FIG. 1, but has a hardware unit according to the invention which is described in US Pat
- the hardware- Unit basically consists of the following units that are interconnected: a timer (boot timer) BT, at least one electronic programmable fuse (eFUSE) EF and a dynamic interface enable DIF.
- a timer boot timer
- eFUSE electronic programmable fuse
- the dynamic interface release DIF is in front of the
- Interface for the mass storage MSI arranged and can enable or disable these interfaces.
- dynamic interface release DIF is thus located between start memory SF and mass storage MS on the one hand and the interfaces SFI and MSI on the other hand.
- the electronic programmable fuses (eFUSEs) EF are programmed in the production of the integrated circuit IC the time required for the booting process.
- the integrated circuit timer BT begins counting and is stopped by the eFUSEs at the pre-programmed time.
- the dynamic interface enable DIF blocks access to the
- Interface SFI for the start memory so that via this interface from the outside no connection to the integrated circuit IC can be made more.
- the dynamic interface release DIF also ensures that the MSI interface for the mass storage medium MS is locked during the startup process and only after
- Memory RAM loaded, and optionally also the data from the mass storage MS, and the integrated circuit IC can properly start their normal operation. Is during the boot process a manipulation of the start memory SF or unauthorized access to the
- preprogrammed duration in any case terminated by the lock of the interface SFI.
- the lock of the interface SFI can only be canceled by a power-on reset, because only in this way the timer BT can be restarted.
- B-ROM internal boot memory (Boot ROM)
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Semiconductor Integrated Circuits (AREA)
- Microcomputers (AREA)
Abstract
Die Erfindung betrifft ein Verfahren zur Überwachung des Startvorgangs einer integrierten Schaltung (IC), wobei der Startvorgang unter Verwendung eines außerhalb der integrierten Schaltung befindlichen Start-Speichers (SF) erfolgt, der mittels einer in der integrierten Schaltung angeordneten Start-Schnittstelle (SFI) mit der integrierten Schaltung verbunden ist. Um die Gefahr einer Manipulation des Start-Speichers zu verringern, ist vorgesehen, dass durch die Hardware der integrierten Schaltung (IC) eine nicht veränderbare Zeitdauer für den Startvorgang vorgegeben wird und bei Überschreiten der vorgegebenen Zeitdauer die Start- Schnittstelle (SFI) gesperrt wird.
Description
Beschreibung
Überwachung des Startvorgangs einer integrierten Schaltung
Technisches Gebiet
Die Erfindung betrifft ein Verfahren zur Überwachung des Startvorgangs (Bootvorgangs) einer integrierten Schaltung, wobei der Startvorgang unter Verwendung eines außerhalb der integrierten Schaltung befindlichen Start-Speichers erfolgt, der mittels einer in der integrierten Schaltung angeordneten Start-Schnittstelle mit der integrierten Schaltung verbunden ist .
Die vorliegende Erfindung liegt auf dem Gebiet der
elektronischen und logischen Schaltungen, insbesondere der so genannten anwendungsspezifischen, integrierten Schaltungen oder ASICs.
Stand der Technik
Logische bzw. elektronische Schaltungen, welche als
integrierte Schaltungen realisiert sind, bilden heutzutage die Grundlage für jegliche Elektronik, insbesondere in der Computertechnik. Üblicherweise bestehen derartige
elektronische Schaltungen bzw. Systeme aus auf einem
einzelnen Substrat (z. B. Halbleitersubstrat, etc.)
untergebrachten und miteinander verdrahteten elektronischen Bauelementen bzw. elektronischen Schaltkreisen oder so genannten Integrated Circuits (ICs) . Eine integrierte
Schaltung besteht damit aus einer großen Anzahl von
verschiedenartigen Bauelementen sowie verbindenden
Leiterzügen auf oder in einem einkristallinen Substrat. Erst durch diese Integration ist es möglich, umfangreiche
Funktionalitäten und Anwendungen auf einem kleinen Raum zur Verfügung zu stellen. Durch integrierte Schaltungen wird eine
Vielzahl von Anwendungen (z. B. in mobilen Geräten, SIM- Karten, RFIDs, Mobiltelefonen, etc.) erst technisch
realisierbar, da diese Anwendungen sonst oft zu teuer, zu komplex, zu leistungsintensiv oder zu groß (z.B. für einen Einbau in das jeweilige Gerät, etc.) wären. Werden derartige logische bzw. integrierte Schaltungen für spezielle
Anwendungen erstellt, so werden diese Schaltungen auch als anwendungsspezifische, integrierte Schaltungen oder als application-specific integrated circuit bzw. kurz als ASICs bezeichnet .
Eine Verkleinerung von Geräten und ein ständig steigender Integrationsgrad haben dazu geführt, dass mittlerweile ganze Systeme z.B. mit Prozessoren, Controllern, Speicherbausteinen (z. B. RAMs, ROMs, etc.), Power-Management und anderen
Komponenten auf einem so genannten Chip oder Die
untergebracht werden. Derartige Systeme werden auch als EinChip-Systeme oder System-on-Chip (SoC) bezeichnet und vor allem im Mobilfunkbereich, für Embedded Computer,
Smartphones, CD- und DVD-Geräte und überall dort bei
Anwendungen eingesetzt, wo kleine Abmessungen bei relativ hoher Leistung und vielfältige Aufgaben gefragt sind.
Bei einem System-on-Chip (SoC) oder Ein-Chip-System sind alle oder ein großer Teil der Funktionen des Systems auf dem Chip integriert - d. h. in einem integrierten Schaltkreis auf einem Halbleiter-Substrat. Üblicherweise werden heutzutage System-on-Chips bzw. Ein-Chip-Systeme nicht mehr komplett neu entwickelt, sondern Entwürfe basieren zumindest teilweise auf bereits vorhandenen und/oder zugekauften Komponenten - so genannten IP-Core-Einheiten oder IP-Blöcken (z. B. Prozessor, Controller-Einheiten, Peripherieblöcke, etc.). Diese IP- Blöcke werden z.B. als fertige Einheit oder mittels Design- Lizenzen erworben und dann in einem neuen Ein-Chip-System direkt oder in angepasster Form verwendet. Fehlende Einheiten für das Ein-Chip-System können dann z.B. für den fertigen ASIC dazu entwickelt werden. Verbunden werden die Einheiten eines derartigen Ein-Chip-Systems intern über ein Bussystem.
Integrierte Schaltungen können durch ein sogenanntes Field Programmable Gate Array (FPGA) verwirklicht werden. Ein FGPA ist ein integrierter Schaltkreis (IC) der Digitaltechnik, in den eine logische Schaltung programmiert werden kann.
Programmieren heißt hier, dass dessen Funktionsstruktur definiert wird. Beim Programmieren der Verschaltung der vorgegebenen Elemente wird die Funktionsweise einzelner Blöcke im FPGA und deren Verschaltung untereinander
festgelegt. Durch die spezifische Konfiguration interner Strukturen können in einem FPGA verschiedene Schaltungen realisiert werden, bis zu hochkomplexen Schaltungen, wie Mikroprozessoren. FPGAs werden vor allem dort eingesetzt, wo es auf schnelle Signalverarbeitung und flexible Änderung der Schaltung ankommt, um beispielsweise nachträgliche
Verbesserungen an den implementierten Funktionen vornehmen zu können, ohne dabei direkt die physische Hardware ändern zu müssen . Die wesensbestimmende Grundstruktur eines FPGA ist ein Feld (engl. Array) aus Basisblöcken mit jeweils einer einfachen programmierbaren Lookup-Tabelle (LUT) und einem 1-Bit- Register (Flipflop) . Die Programmierung der gewünschten Funktion erfolgt durch die Hinterlegung der definierenden Wahrheitstabelle in den SRAM-Zellen der LUT, die
Funktionsberechnung durch das Auslesen der durch die Eingänge bestimmten Speicheradresse. Neben den LUTs ist auf dem FPGA auch die Verschaltung der Komponenten in großen
Freiheitsgraden konfigurierbar. Für Verbindungen über weite Entfernungen liegt zwischen den Basisblöcken ein Gitter aus Busstrukturen, an das Ein- und Ausgänge angeschlossen werden können. Weitere programmierbare Schaltkomponenten in den Kreuzungspunkten des Gitters erlauben die Signalverteilung über den gesamten Chip.
Eingangs-/Ausgangs-Blöcke dienen der Kommunikation mit der Außenwelt, über sie werden die Anschlüsse des FPGA mit der Schaltmatrix verbunden. Taktgeneratoren erzeugen ausgehend
von an den Eingängen zur Verfügung gestellten Takten alle für die Anwendung benötigten internen Takte. In komplexen FPGAs sind zusätzliche fest verdrahtete Funktionen enthalten, wie z. B. Speicherblöcke (sog. Block RAM) .
FPGAs, die im Bereich von System-on-Chip-Anwendung (SoC) finden, besitzen eine Reihe meist komplexer Hard-Cores, um ein komplettes System aufzunehmen. Hard-Cores sind feste und unveränderliche Schaltungen von meist komplexen
Funktionsblöcken, wie beispielsweise MikroController oder Ethernet-Schnittstellen .
Die Programmierung der LUTs eines FGPA und der
Verbindungsstrukturen erfolgt typischerweise einmal vor jedem Einsatz, wodurch der FPGA auf eine konkrete Funktion
konfiguriert wird. Dies ist notwendig, da der FPGA durch Abschalten der Betriebsspannung seine Konfiguration wieder verliert . Unabhängig davon, ob die integrierte Schaltung nun als FPGA verwirklicht ist oder nicht, umfasst diese in der Regel eine eigene Speichereinheit (Boot ROM) mit entsprechendem
Programmcode auf dem Chip, um die integrierte Schaltung zu initialisieren. Aus Platzgründen sind jedoch weitere
Programme, etwa für das Starten der Funktion der integrierten Schaltung, wie der sogenannte Second Level Boot Code, nicht in der integrierten Schaltung gespeichert, sondern werden in eigenen elektronischen Flash-Speichern, z.B. Flash- Bausteinen, abgelegt, die sich auf der gleichen Platine wie die integrierte Schaltung befinden.
Ein Flash-Speicher, genauer ein Flash-EEPROM, ist ein nichtflüchtiger, elektronischer Speicherbaustein, dessen gespeicherte Information elektrisch gelöscht werden kann, wobei immer bestimmte Blöcke gelöscht und neu programmiert werden können .
Während des Startvorgangs wird das Startprogramm, meist in mehreren Programmteilen, vom Flash-Speicher in den
Arbeitsspeicher des integrierten Schaltkreises kopiert und von dort ausgeführt. Durch Fremdeingriffe können die Inhalte des Flash-Speichers manipuliert oder vollständig ausgetauscht werden. Dies hat negative Auswirkungen auf die Sicherheit des integrierten Schaltkreises.
Bisher ist man dieser Gefahr beispielsweise mittels des sogenannten „trusted boot" Prinzips begegnet. Dabei wird der Startvorgang mit einer Überprüfung der Integrität der
Hardware verknüpft. Vor dem eigentlichen Startvorgang überprüft etwa ein sogenanntes „Core Root of Trust
Measurement" (CRTM) -Modul die zugrunde liegende Hardware und speichert einen Signatur-Messwert in einem geschützten
Speicherbereich ab. Diese Information wird dann beim Starten verwendet um zu entscheiden, ob das zugrunde liegende System vertrauenswürdig ist. Diese Überprüfung hat allerdings den Nachteil, dass sie mittels Software erfolgt, die selbst wieder manipuliert werden kann.
Darstellung der Erfindung
Es ist eine Aufgabe der vorliegenden Erfindung, ein Verfahren zur Überwachung des Startvorgangs zur Verfügung zu stellen, welches die Gefahr einer Manipulation des Start-Speichers verringert.
Diese Aufgabe wird durch ein Verfahren mit den Merkmalen des Patentanspruchs 1 gelöst, bei welchem der Startvorgang unter Verwendung eines außerhalb der integrierten Schaltung befindlichen Start-Speichers erfolgt, der mittels einer in der integrierten Schaltung angeordneten Start-Schnittstelle mit der integrierten Schaltung verbunden ist.
Gemäß Anspruch 1 ist bei dem Verfahren zur Überwachung des Startvorgangs einer integrierten Schaltung vorgesehen, dass durch die Hardware der integrierten Schaltung eine nicht veränderbare Zeitdauer für den Startvorgang vorgegeben wird und bei Überschreiten der vorgegebenen Zeitdauer die Start- Schnittstelle gesperrt wird.
Dadurch, dass für den Startvorgang, das Booten oder
Initialisieren, nur eine begrenzte Zeit zur Verfügung gestellt wird, nämlich nur jene, die erfahrungsgemäß für den Startvorgang benötigt wird, kann verhindert werden, dass durch Manipulationen des Start-Speichers längere, unzulässige Programme zum Einsatz kommen. Zudem wird verhindert, dass die integrierte Schaltung durch den Einsatz eines CPU-Debuggers ausspioniert wird, weil ein CPU-Debugger in der Regel auch eine Zeit benötigt, die länger ist als jene für den
Startvorgang .
Da die erfindungsgemäße Sperre der Start-Schnittstelle unveränderbar in Hardware, und nicht durch Software,
realisiert wird, kann sie nich durch Manipulationsversuche umgangen werden .
Die Zeitdauer, die für den Startvorgang benötigt wird, kann am einfachsten durch einen als Teilschaltung ausgeführten Zeitschalter (Timer) der integrierten Schaltung gemessen werden .
Die Zeitdauer, die für den Startvorgang benötigt wird, wird vorzugsweise im Zeitpunkt der Fertigung der integrierten Schaltung mit zumindest einer elektronischen programmierbaren Sicherung, die in der integrierten Schaltung enthalten ist, eingestellt .
Eine solche elektronische Sicherung wird auch als eFUSE bezeichnet. Für den genannten Zweck sind in der Regel mehrere eFUSEs notwendig. Diese Sicherungen sind Hardware-Bauteile, die einmal elektrisch programmiert werden können, diese
Programmierung ist dann aber nicht mehr änderbar. Bei der Programmierung wird die Sicherung mit Hilfe einer zugeführten Fuse-Spannung durchgebrannt.
Insbesondere kann vorgesehen sein, dass das Entsperren der Start-Schnittstelle ausschließlich durch ein
Einschaltrücksetzsignal erfolgt. Wurde also die durch den Zeitschalter vorgegebene Zeitdauer für den Startvorgang überschritten und folglich die Start-Schnittstelle gesperrt, kann ein neuer Startvorgang erst wieder durchgeführt werden, wenn durch einen sogenannten Power-on Reset der Zeitschalter (Timer) wieder neu gestartet wird.
Eine integrierte Schaltung weist in der Regel neben der Start-Schnittstelle weitere Schnittstellen auf. Falls diese bereits zu Beginn des Startvorgangs freigegeben werden, wenn also der Startvorgang (das Booten) noch gar nicht
abgeschlossen ist, kann auch über die weiteren Schnittstellen eine unbefugte Änderung von Programmen oder Programmteilen, insbesondere des Startprogramms, erfolgen. Insofern kann vorgesehen werden, dass zumindest eine weitere Schnittstelle der integrierten Schaltung in Abhängigkeit vom Fortschritt des Startvorgangs freigegeben wird. Diese weitere
Schnittstelle ist also zu Beginn des Startvorgangs gesperrt.
Insbesondere kann vorgesehen sein, dass die weitere
Schnittstelle der integrierten Schaltung erst nach Abschluss des Startvorgangs freigegeben wird .
Der Start-Speicher ist vorzugsweise als serieller Flash- Speicher ausgeführt.
Eine erfindungsgemäße integrierte Schaltung umfasst zumindest eine Start-Schnittstelle, mittels welcher ein Start-Speicher mit der integrierten Schaltung verbunden werden kann, und ist dadurch gekennzeichnet, dass in der integrierten Schaltung eine Hardware-Einheit vorgesehen ist, die so ausgebildet ist, dass nach Ablauf einer für den Startvorgang vorgegeben, nicht
veränderbaren Zeitdauer die Start-Schnittstelle gesperrt wird .
Die bevorzugte Ausführungsform der integrierten Schaltung sieht vor, dass die Hardware-Einheit einen als Teilschaltung ausgeführten Zeitschalter aufweist sowie zumindest eine elektronisch programmierbare Sicherung. Die Hardware-Einheit kann darüber hinaus so ausgebildet sein, dass zumindest eine weitere Schnittstelle der integrierten Schaltung in
Abhängigkeit vom Fortschritt des Startvorgangs freigegeben wird. Insbesondere kann die weitere Schnittstelle erst nach Ablauf der für den Startvorgang vorgegeben, nicht
veränderbaren Zeitdauer freigegeben werden.
Die Freigabe und Sperrung der Start-Schnittstelle und gegebenenfalls der weiteren Schnittstelle kann erreicht werden, indem die Hardware-Einheit so ausgebildet ist, dass diesen Schnittstellen eine dynamische Schnittstellen-Freigabe vorgeschaltet ist.
Kurzbeschreibung der Figuren
Zur weiteren Erläuterung der Erfindung wird im nachfolgenden Teil der Beschreibung auf die Figuren Bezug genommen, aus der weitere vorteilhafte Ausgestaltungen, Einzelheiten und
Weiterbildungen der Erfindung zu entnehmen sind. Die Figuren sind beispielhaft zu verstehen und sollen den
Erfindungscharakter zwar darlegen, ihn aber keinesfalls einengen oder gar abschließend wiedergeben. Es zeigen:
Fig. 1 eine schematische Darstellung einer integrierten
Schaltung nach dem Stand der Technik
Fig. 2 eine schematische Darstellung einer
erfindungsgemäßen integrierten Schaltung
Ausführung der Erfindung
Für die integrierte Schaltung IC sind in den Figuren nur die für die Erfindung wesentlichen Einheiten dargestellt. Sie kann und wird in der Regel darüber hinaus weitere Einheiten, wie Ein-/Ausgabeeinheiten, Controller, zusätzliche
Schnittstellen, weitere Prozessoren, Speicher, enthalten.
In Fig. 1 ist eine integrierte Schaltung IC gemäß dem Stand der Technik dargestellt, mit einem Prozessor CPU und einem Arbeitsspeicher RAM, wobei CPU und RAM über eine
Verbindungseinheit ( Interconnect ) I, z.B. ein Bussystem, miteinander verbunden sind. An das Verbindungssystem sind auch ein interner Boot-Speicher (Boot ROM) B-ROM, eine
Schnittstelle für den Start-Speicher (Serial Flash Interface) SFI sowie eine Schnittstelle für einen Massenspeicher (Mass Storage Interface) MSI angeschlossen. Alle genannten
Einheiten sind Bestandteil der integrierten Schaltung IC. Auf derselben Baugruppe wie die integrierte Schaltung IC, aber nicht als Bestandteil der integrierten Schaltung IC, ist ein Start-Speicher SF vorgesehen und etwa als serieller Flash-Speicher (Serial Flash) ausgeführt. Der Start-Speicher SF ist fix mit der Schnittstelle SFI verbunden.
Ebenso kann am selben Board wie die integrierte Schaltung IC, aber nicht als Bestandteil der integrierten Schaltung IC, ein Massenspeicher (Mass Storage) MS vorgesehen sein, der mit der entsprechenden Schnittstelle MSI fest verbunden ist. Oder der Massenspeicher MS könnte lösbar mit der Schnittstelle MSI verbunden sein, etwa als SD-Karte. Die Schnittstelle MSI ist hier bereits während des Startvorgangs freigegeben.
Nach einem Power-on Reset oder bei einem Neustart muss die integrierte Schaltung initialisiert werden. Das heißt, nach dem Anlegen einer Betriebsspannung wird die integrierte Schaltung gezielt in einen definierten Anfangszustand übergeführt. Dies ist deshalb erforderlich, da integrierte
Schaltkreise sowohl kombinatorische Funktionen (logische Gatter) als auch Speicherelemente wie zum Beispiel Flip-Flops oder RAM-Zellen umfassen. Diese können sich aus Gründen der gegenseitigen Beeinflussung und der physikalisch bedingten leicht unterschiedlichen Beaufschlagung mit Strom während des EinschaltZeitpunkts unvorhersehbar verhalten und somit auch nach dem Einschalten ebenfalls unvorhersehbare Zustände annehmen. Damit befindet sich die gesamte integrierte
Schaltung in einem Undefinierten Zustand und arbeitet fehlerhaft oder gar nicht.
Bei der Initialisierung greift der Prozessor CPU auf den Boot-Speicher B-ROM zu, was durch einen Pfeil dargestellt ist. Während dieses Startvorgangs werden aber auch
übergelagerte Programmteile in den Arbeitsspeicher RAM geladen, sogenannter „Second Level Boot Code", der auf dem Start-Speicher SF gespeichert ist, siehe entsprechender Pfeil. Während des Betriebs werden andere Programme und/oder Daten in den Arbeitsspeicher RAM geladen, die auf dem
Massenspeicher MS abgespeichert sind, und die ebenfalls für den anschließenden Normalbetrieb der integrierten Schaltung notwendig sind.
Während des Startvorgangs (=Boot, = Initialisierens) könnte nun von außerhalb der integrierten Schaltung IC unbefugt eine Manipulation des Start-Speichers SF und/oder des
Massenspeichers MS erfolgen, sodass der Startvorgang nicht korrekt abgeschlossen wird und die integrierte Schaltung IC den Normalbetrieb gar nicht oder nicht ordnungsgemäß
aufnehmen kann. Oder es könnte während des Startvorgangs unbefugt ein CPU-Debugger über eine der Schnittstellen SFI oder MSI die integrierte Schaltung IC ausspionieren.
Dies wird durch eine erfindungsgemäße Schaltung gemäß Fig. 2 verhindert: Diese integrierte Schaltung IC ist grundsätzlich gleich wie jene in Fig. 1 ausgeführt, jedoch weist sie eine erfindungsgemäße Hardware-Einheit auf, die in der
integrierten Schaltung IC integriert ist. Die Hardware-
Einheit besteht im Wesentlichen aus den folgenden Einheiten, die untereinander verbunden sind: ein Zeitschalter (Boot Timer) BT, zumindest eine elektronische programmierbare Sicherung (eFUSE) EF und eine dynamische Schnittstellen- Freigabe DIF.
Die dynamische Schnittstellen-Freigabe DIF ist vor der
Schnittstelle SFI für den Start-Speicher und der
Schnittstelle für den Massenspeicher MSI angeordnet und kann diese Schnittstellen freigegeben oder sperren. Diese
dynamische Schnittstellen-Freigabe DIF befindet sich somit zwischen Start-Speicher SF und Massenspeicher MS einerseits und den Schnittstellen SFI und MSI andererseits. Den elektronischen programmierbaren Sicherungen (eFUSEs) EF wird bei der Herstellung der integrierten Schaltung IC jene Zeitdauer einprogrammiert, die für den Startvorgang benötigt wird. Beim Startvorgang beginnt der Zeitschalter BT der integrierten Schaltung zu zählen und wird von den eFUSEs zum vorprogrammierten Zeitpunkt gestoppt. Dann sperrt die dynamische Schnittstellen-Freigabe DIF den Zugang zur
Schnittstelle SFI für den Start-Speicher, sodass über diese Schnittstelle von außen keine Verbindung zur integrierten Schaltung IC mehr hergestellt werden kann.
Die dynamische Schnittstellen-Freigabe DIF sorgt weiters dafür, dass die Schnittstelle MSI für den Massenspeicher MS während des Startvorgangs gesperrt ist und erst nach
Abschluss des Startvorgangs freigegeben wird. Auf diese Weise wird sichergestellt, dass über die Schnittstelle MSI während des Startvorgangs keine Manipulationen vorgenommen werden können .
Wenn der Startvorgang ordnungsgemäß verlaufen ist, wurden die Daten des Startspeichers SF vollständig in den
Arbeitsspeicher RAM geladen, und gegebenenfalls ebenso die Daten vom Massenspeicher MS, und die integrierte Schaltung IC kann ordnungsgemäß ihren Normalbetrieb beginnen.
Ist während des Startvorgangs eine Manipulation am Start- Speicher SF oder ein unerlaubter Zugriff über die
Schnittstelle SFI erfolgt, werden diese nach der
vorprogrammierten Zeitdauer jedenfalls durch die Sperre der Schnittstelle SFI beendet. Die Sperre der Schnittstelle SFI kann nur durch einen Power-on Reset wieder aufgehoben werden, weil nur auf diese Weise der Zeitschalter BT wieder neu gestartet werden kann.
Grundsätzlich besteht die Möglichkeit, mehrere Zeitschalter BT mit zugeordneten programmierbaren eFUSEs EF vorzusehen, sodass ein Zeitschalter BT die Zeitdauer bis zur Sperre der Schnittstelle für den Start-Speicher SFI zählt, während ein zweiter Zeitschalter eine andere (kürzere) Zeitdauer vorgibt, nach deren Verstreichen die Schnittstelle MSI für den
Massenspeicher freigegeben wird.
Bezugszeichenliste:
B-ROM interner Boot-Speicher (Boot ROM)
BT Zeitschalter (Boot Timer)
CPU Prozessor
DIF dynamische Schnittstellen-Freigabe
EF elektronische programmierbare Sicherung (eFUSE)
I Verbindungseinheit
IC integrierte Schaltung
MS Massenspeicher (Mass Storage)
MSI Schnittstelle für den Massenspeicher (Mass Storage
Interface)
RAM Arbeitsspeicher
SF Start-Speicher (Serial Flash, serieller Flash-
Speicher)
SFI Schnittstelle für den Start-Speicher (Serial Flash
Interface)
Claims
1. Verfahren zur Überwachung des Startvorgangs einer
integrierten Schaltung (IC) , wobei der Startvorgang unter Verwendung eines außerhalb der integrierten
Schaltung befindlichen Start-Speichers (SF) erfolgt, der mittels einer in der integrierten Schaltung angeordneten Start-Schnittstelle (SFI) mit der integrierten Schaltung verbunden ist, dadurch gekennzeichnet,
dass durch die Hardware der integrierten Schaltung (IC) eine nicht veränderbare Zeitdauer für den Startvorgang vorgegeben wird und bei Überschreiten der vorgegebenen Zeitdauer die Start-Schnittstelle (SFI) gesperrt wird.
2. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass die Zeitdauer durch einen als Teilschaltung ausgeführten Zeitschalter (BT) der integrierten Schaltung gemessen wird .
3. Verfahren nach Anspruch 1 oder 2, dadurch
gekennzeichnet, dass die Zeitdauer im Zeitpunkt der Fertigung der integrierten Schaltung (IC) mit zumindest einer elektronischen programmierbaren Sicherung (EF) , die in der integrierten Schaltung enthalten ist, eingestellt wird.
4. Verfahren nach einem der Ansprüche 1 bis 3, dadurch
gekennzeichnet, dass das Entsperren der Start-
Schnittstelle (SFI) ausschließlich durch ein
Einschaltrücksetz signal erfolgt.
5. Verfahren nach einem der Ansprüche 1 bis 4, dadurch
gekennzeichnet, dass zumindest eine weitere
Schnittstelle (MSI) der integrierten Schaltung (IC) in Abhängigkeit vom Fortschritt des Startvorgangs
freigegeben wird.
6. Verfahren nach Anspruch 5, dadurch gekennzeichnet, dass die weitere Schnittstelle (MSI) der integrierten
Schaltung (IC) erst nach Abschluss des Startvorgangs freigegeben wird.
7. Verfahren nach einem der Ansprüche 1 bis 6, dadurch
gekennzeichnet, dass der Start-Speicher (SF) als serieller Flash-Speicher ausgeführt ist.
8. Verfahren nach einem der Ansprüche 1 bis 7, dadurch
gekennzeichnet, dass durch die Hardware der integrierten Schaltung (IC) eine nicht veränderbare Zeitdauer bis zur Freigabe eines Massenspeichers (MS) vorgegeben wird.
9. Integrierte Schaltung (IC) zur Durchführung eines
Verfahrens nach einem der Ansprüche 1 bis 8, umfassend zumindest eine Start-Schnittstelle (SFI), mittels welcher ein Start-Speicher (SF) mit der integrierten Schaltung verbunden werden kann, dadurch gekennzeichnet,
dass in der integrierten Schaltung eine Hardware-Einheit (EF, BT, DIF) vorgesehen ist, die so ausgebildet ist, dass nach Ablauf einer für den Startvorgang vorgegeben, nicht veränderbaren Zeitdauer die Start-Schnittstelle (SFI) gesperrt wird.
10. Integrierte Schaltung (IC) nach Anspruch 9, dadurch
gekennzeichnet, dass die Hardware-Einheit (EF, BT, DIF) einen als Teilschaltung ausgeführten Zeitschalter (BT) aufweist .
11. Integrierte Schaltung (IC) nach Anspruch 9 oder 10,
dadurch gekennzeichnet, dass die Hardware-Einheit (EF, BT, DIF) zumindest eine elektronisch programmierbare Sicherung (EF) aufweist.
12. Integrierte Schaltung (IC) nach einem der Ansprüche 9 bis 11, dadurch gekennzeichnet, dass die Hardware- Einheit (EF, BT, DIF) so ausgebildet ist, dass zumindest eine weitere Schnittstelle (MSI) der integrierten
Schaltung in Abhängigkeit vom Fortschritt des
Startvorgangs freigegeben wird.
13. Integrierte Schaltung (IC) nach Anspruch 12, dadurch gekennzeichnet, dass die weitere Schnittstelle (MSI) nach Ablauf der für den Startvorgang vorgegeben, nicht veränderbaren Zeitdauer freigegeben wird.
14. Integrierte Schaltung (IC) nach einem der Ansprüche 9 bis 13, dadurch gekennzeichnet, dass ein Start-Speicher (SF) als serieller Flash-Speicher ausgeführt und mit der integrierten Schaltung (IC) verbunden ist.
15. Integrierte Schaltung (IC) nach einem der Ansprüche 9 bis 14, dadurch gekennzeichnet, dass die Hardware-
Einheit (EF, BT, DIF) so ausgebildet ist, dass der
Start-Schnittstelle (SFI) und gegebenenfalls der weiteren Schnittstelle (MSI) eine dynamische
Schnittstellen-Freigabe (DIF) vorgeschaltet ist.
16 Integrierte Schaltung (IC) nach einem der Ansprüche 9 bis 15, dadurch gekennzeichnet, dass die Hardware-
Einheit (EF, BT, DIF) so ausgebildet ist, dass eine nicht veränderbare Zeitdauer bis zur Freigabe eines
Massenspeichers (MS) vorgegeben wird.
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| ATA50173/2015 | 2015-03-05 | ||
| ATA50173/2015A AT517154B1 (de) | 2015-03-05 | 2015-03-05 | Überwachung des Startvorgangs einer integrierten Schaltung |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| WO2016139090A1 true WO2016139090A1 (de) | 2016-09-09 |
Family
ID=55484959
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/EP2016/053816 Ceased WO2016139090A1 (de) | 2015-03-05 | 2016-02-24 | Überwachung des startvorgangs einer integrierten schaltung |
Country Status (2)
| Country | Link |
|---|---|
| AT (1) | AT517154B1 (de) |
| WO (1) | WO2016139090A1 (de) |
Citations (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2014142659A1 (en) * | 2013-03-12 | 2014-09-18 | Uksi B.V. | Data storage device and computer system comprising such data storage device |
Family Cites Families (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2009044533A1 (ja) * | 2007-10-05 | 2009-04-09 | Panasonic Corporation | セキュアブート端末、セキュアブート方法、セキュアブートプログラム、記録媒体及び集積回路 |
| US8788756B2 (en) * | 2011-11-28 | 2014-07-22 | Xilinx, Inc. | Circuit for and method of enabling the transfer of data by an integrated circuit |
| KR20140124548A (ko) * | 2013-04-17 | 2014-10-27 | 에스케이하이닉스 주식회사 | 집적회로 및 메모리 장치 |
-
2015
- 2015-03-05 AT ATA50173/2015A patent/AT517154B1/de not_active IP Right Cessation
-
2016
- 2016-02-24 WO PCT/EP2016/053816 patent/WO2016139090A1/de not_active Ceased
Patent Citations (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2014142659A1 (en) * | 2013-03-12 | 2014-09-18 | Uksi B.V. | Data storage device and computer system comprising such data storage device |
Also Published As
| Publication number | Publication date |
|---|---|
| AT517154B1 (de) | 2018-07-15 |
| AT517154A2 (de) | 2016-11-15 |
| AT517154A3 (de) | 2018-05-15 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| DE69914864T2 (de) | Steuerung der konfiguration in einer programmierbaren logik-einheit mittels nichtflüchtiger bauelemente | |
| DE10244757B3 (de) | Programmierung eines Speicherbausteins über ein Boundary Scan-Register | |
| DE102015217933B4 (de) | Vorrichtung zum Verarbeiten von Daten und Verfahren zum Betreiben einer solchen Vorrichtung | |
| DE112018004577T5 (de) | Multiprozessorkern-vorrichtung mit mbist | |
| DE112019007230T5 (de) | Multimodus-Geschützter-Speicher | |
| DE112018006401T5 (de) | Transparent zugeordnete flash-memory-sicherheit | |
| DE102022102312B3 (de) | Integrierte schaltung und verfahren zum schutz einer integrierten schaltung gegen reverse engineering | |
| EP3036676B1 (de) | Verfahren zur absicherung einer integrierten schaltung gegen unberechtigte zugriffe | |
| US7683663B1 (en) | Authorization of an implementation of a user design in a programmable integrated circuit | |
| EP4205009B1 (de) | Verfahren zur integritätsprüfung von nachladbaren funktionseinheiten | |
| DE102014002302A1 (de) | System und Verfahren zum Bestimmen der operativen Robustheit eines Systems auf einem Chip | |
| AT517154B1 (de) | Überwachung des Startvorgangs einer integrierten Schaltung | |
| EP3378006B1 (de) | Verfahren zum laden eines sicheren speicherabbilds eines mikrocontrollers und anordnung mit einem mikrocontroller | |
| WO2017005410A1 (de) | Bereitstellen eines gerätespezifischen kryptographischen schlüssels aus einem systemübergreifenden schlüssel für ein gerät | |
| EP3617928B1 (de) | Verfahren zum speichern von schlüsseldaten in einem elektronischen bauteil | |
| EP3767515B1 (de) | Verfahren zur dynamischen und partiellen rekonfiguration eines elektronischen bauteils | |
| WO2008031776A1 (de) | Mikrocontroller und verfahren zum starten eines anwendungsprogramms auf einem mikrocontroller | |
| DE102019201096A1 (de) | Integrierter Schaltkreis und eingebettetes System mit einem solchen integrierten Schaltkreis | |
| DE69800054T2 (de) | Verfahren zum Identifizieren eines integrierten Schaltkreises und eine damit zusammenhängende Vorrichtung | |
| EP3876123B1 (de) | Anordnung und betriebsverfahren für einen sicheren hochfahrablauf einer elektronischen einrichtung | |
| EP3896589A1 (de) | Verfahren und halbleitervorrichtung mit überwachungsmodul | |
| DE112023000977T5 (de) | Sichere programmierung eines einmal-programmierbaren (otp) speichers | |
| EP3347848B1 (de) | Speicherprogrammierbarer baustein und verfahren zur geschützten übertragung von daten auf einen speicherprogrammierbaren baustein | |
| DE112022001005T5 (de) | Trap-unterabschnitte von computerlesbaren anweisungen und zugehörige systeme, verfahren und einrichtungen | |
| EP3734898A1 (de) | Verfahren und prozessor zum sicheren prozessorstart |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| 121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 16708373 Country of ref document: EP Kind code of ref document: A1 |
|
| NENP | Non-entry into the national phase |
Ref country code: DE |
|
| 122 | Ep: pct application non-entry in european phase |
Ref document number: 16708373 Country of ref document: EP Kind code of ref document: A1 |