AT517154B1 - Überwachung des Startvorgangs einer integrierten Schaltung - Google Patents
Überwachung des Startvorgangs einer integrierten Schaltung Download PDFInfo
- Publication number
- AT517154B1 AT517154B1 ATA50173/2015A AT501732015A AT517154B1 AT 517154 B1 AT517154 B1 AT 517154B1 AT 501732015 A AT501732015 A AT 501732015A AT 517154 B1 AT517154 B1 AT 517154B1
- Authority
- AT
- Austria
- Prior art keywords
- integrated circuit
- interface
- sfi
- time
- dif
- Prior art date
Links
Classifications
-
- 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/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
- 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
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
[0001] 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.
[0002] Die vorliegende Erfindung liegt auf dem Gebiet der elektronischen und logischen Schaltungen, insbesondere der so genannten anwendungsspezifischen, integrierten Schaltungen oder ASICs.
STAND DER TECHNIK
[0003] 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.
[0004] 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 Ein-Chip-Systeme oder System-on-Chip (SoC) bezeichnet und vor allem im Mobilfunkbereich, für Em-bedded 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.
[0005] 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.
[0006] 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.
[0007] 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.
[0008] 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).
[0009] 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.
[0010] Die Programmierung der LUTs eines FGPA und der Verbindungsstrukturen erfolgt typischerweise einmal vor jedem Einsatz, wodurch der FPGA auf eine konkrete Funktion konfiguriertwird. Dies ist notwendig, da der FPGA durch Abschalten der Betriebsspannung seine Konfiguration wieder verliert.
[0011] 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.
[0012] 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.
[0013] 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.
[0014] 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.
[0015] Diese Überprüfung hat allerdings den Nachteil, dass sie mittels Software erfolgt, die selbst wieder manipuliert werden kann.
[0016] Aus der Schrift WO 2014/142659 A1 ist neben einer Datenspeichereinheit und einem Computersystem mit dieser Datenspeichereinheit auch ein Verfahren zum sicheren Hochfahren einer Computereinheit bzw. für einen sicheren Fernzugriff auf Softwareapplikationen bekannt. Dabei werden Softwareapplikationen beim Laden auf Virusprogramme und/oder andere unautorisierte Datenprogramme durch die Datenspeichereinheit geprüft. Dazu weist die Datenspeichereinheit einen Zugangskontroller mit einer Speichereinheit auf, in welcher Referenzzeitsequenzen gespeichert werden. Diese Referenzzeitsequenzen werden z.B. beim Hochfahren des Computersystems oder beim Anbinden der Datenspeichereinheit vom Zugangskontroller mit einer Zeitsequenz eines Überwachungssignals verglichen und bei Übereinstimmung davon ausgegangen, dass keinen Schadsoftware vorhanden ist. Das in der Schrift WO 2014/142659 A1 beschriebene Verfahren weist allerdings den Nachteil auf, dass die Referenzzeitsequenzen bei Inbetriebnahme der Datenspeichereinheit ermittelt werden - es wird z.B. eine Datenfolge (z.B. Bootsequenz) einmalig oder mehrmals überwacht und daraus eine Referenzzeitsequenz erlernt. Damit kann nicht ausgeschlossen werden, dass die Datenfolge manipuliert ist bzw. so genannte Malware enthält und dies mitgelernt wird.
[0017] Weiterhin beschreibt die Schrift US 2014/0313840 A1 eine integrierte Schaltung mit einer programmierbaren Speichereinheit sowie einen Hochfahrvorgang, welcher z.B. bei entsprechender Stromversorgung so rasch wie möglich gestartet werden kann. Dazu ist eine so genannte Boot-Up-Einheit vorgesehen, von welcher eine Anzahl an Starts eines periodischen Signals gezählt wird, nachdem eine stabile Stromversorgung vorliegt, und von welcher eine Hochfahrsignal ausgesendet wird, wenn die gezählte Anzahl an Starts eine vorgegebene Anzahl übersteigt. Damit kann zwar eine Speichereinheit sehr rasch wieder hochgefahren werden, es erfolgt allerdings keine Überprüfung auf Manipulationen in einem Start-Speicher bzw. eine Überwachung des Startvorgangs.
DARSTELLUNG DER ERFINDUNG
[0018] Es ist eine Aufgabe der vorliegenden Erfindung, ein Verfahren zur Überwachung des Startvorgangs zur Verfügung zu stellen, welches die Gefahr einer Manipulation des StartSpeichers verringert.
[0019] 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.
[0020] 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. 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.
[0021] 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.
[0022] Da die erfindungsgemäße Sperre der Start-Schnittstelle unveränderbar in Hardware in Form einer elektronisch programmierbaren Sicherung, und nicht durch Software, realisiert wird, kann sie nicht durch Manipulationsversuche umgangen werden. 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.
[0023] 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.
[0024] 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.
[0025] 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.
[0026] Insbesondere kann vorgesehen sein, dass die weitere Schnittstelle der integrierten Schaltung erst nach Abschluss des Startvorgangs freigegeben wird.
[0027] Der Start-Speicher ist vorzugsweise als serieller Flash-Speicher ausgeführt.
[0028] 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. Dazu weist die Hardware-Einheit zumindest eine elektronisch programmierbare Sicherung auf, in welcher im Zeitpunkt der Fertigung der integrierten Schaltung die Zeitdauer einstellbar ist.
[0029] Die bevorzugte Ausführungsform der integrierten Schaltung sieht vor, dass die Hardware-Einheit einen als Teilschaltung ausgeführten Zeitschalter aufweist. 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.
[0030] 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
[0031] 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: [0032] Fig. 1 eine schematische Darstellung einer integrierten Schaltung nach dem Stand der
Technik [0033] Fig. 2 eine schematische Darstellung einer erfindungsgemäßen integrierten Schaltung
AUSFÜHRUNG DER ERFINDUNG
[0034] 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.
[0035] 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.
[0036] 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.
[0037] 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.
[0038] 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.
[0039] 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.
[0040] 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.
[0041] 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 Schnittsteilen-Freigabe DIF.
[0042] Die dynamische Schnittstellen-Freigabe DIF ist vor der Schnittstelle SFI für den StartSpeicher 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.
[0043] 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 StartSpeicher, sodass über diese Schnittstelle von außen keine Verbindung zur integrierten Schaltung IC mehr hergestellt werden kann.
[0044] 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.
[0045] 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.
[0046] 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.
[0047] 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 (14)
- Patentansprüche1. 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, und 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.
- 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 einem der Ansprüche 1 bis 2, dadurch gekennzeichnet, dass das Entsperren der Start-Schnittstelle (SFI) ausschließlich durch ein Einschaltrücksetzsignal erfolgt.
- 4. Verfahren nach einem der Ansprüche 1 bis 3, dadurch gekennzeichnet, dass zumindest eine weitere Schnittstelle (MSI) der integrierten Schaltung (IC) in Abhängigkeit vom Fortschritt des Startvorgangs freigegeben wird.
- 5. Verfahren nach Anspruch 4, dadurch gekennzeichnet, dass die weitere Schnittstelle (MSI) der integrierten Schaltung (IC) erst nach Abschluss des Startvorgangs freigegeben wird.
- 6. Verfahren nach einem der Ansprüche 1 bis 5, dadurch gekennzeichnet, dass der Start-Speicher (SF) als serieller Flash-Speicher ausgeführt ist.
- 7. Verfahren nach einem der Ansprüche 1 bis 6, dadurch gekennzeichnet, dass durch die Hardware der integrierten Schaltung (IC) eine nicht veränderbare Zeitdauer bis zur Freigabe eines Massenspeichers (MS) vorgegeben wird.
- 8. Integrierte Schaltung (IC) zur Durchführung eines Verfahrens nach einem der Ansprüche 1 bis 7, 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, und dass die Hardware-Einheit (EF, BT, DIF) zumindest eine elektronisch programmierbare Sicherung (EF) aufweist, in welcher im Zeitpunkt der Fertigung der integrierten Schaltung (IC) die Zeitdauer einstellbar ist.
- 9. Integrierte Schaltung (IC) nach Anspruch 8, dadurch gekennzeichnet, dass die Hardware-Einheit (EF, BT, DIF) einen als Teilschaltung ausgeführten Zeitschalter (BT) aufweist.
- 10. Integrierte Schaltung (IC) nach einem der Ansprüche 8 bis 9, 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.
- 11. Integrierte Schaltung (IC) nach Anspruch 10, dadurch gekennzeichnet, dass die weitere Schnittstelle (MSI) nach Ablauf der für den Startvorgang vorgegeben, nicht veränderbaren Zeitdauer freigegeben wird.
- 12. Integrierte Schaltung (IC) nach einem der Ansprüche 8 bis 11, dadurch gekennzeichnet, dass ein Start-Speicher (SF) als serieller Flash-Speicher ausgeführt und mit der integrierten Schaltung (IC) verbunden ist.
- 13. Integrierte Schaltung (IC) nach einem der Ansprüche 8 bis 12, 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 Schnittsteilen-Freigabe (DIF) vorgeschaltet ist.
- 14. Integrierte Schaltung (IC) nach einem der Ansprüche 8 bis 13, 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. Hierzu 1 Blatt Zeichnungen
Priority Applications (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| ATA50173/2015A AT517154B1 (de) | 2015-03-05 | 2015-03-05 | Überwachung des Startvorgangs einer integrierten Schaltung |
| PCT/EP2016/053816 WO2016139090A1 (de) | 2015-03-05 | 2016-02-24 | Überwachung des startvorgangs einer integrierten schaltung |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| ATA50173/2015A AT517154B1 (de) | 2015-03-05 | 2015-03-05 | Überwachung des Startvorgangs einer integrierten Schaltung |
Publications (3)
| Publication Number | Publication Date |
|---|---|
| AT517154A2 AT517154A2 (de) | 2016-11-15 |
| AT517154A3 AT517154A3 (de) | 2018-05-15 |
| AT517154B1 true AT517154B1 (de) | 2018-07-15 |
Family
ID=55484959
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| ATA50173/2015A AT517154B1 (de) | 2015-03-05 | 2015-03-05 | Überwachung des Startvorgangs einer integrierten Schaltung |
Country Status (2)
| Country | Link |
|---|---|
| AT (1) | AT517154B1 (de) |
| WO (1) | WO2016139090A1 (de) |
Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| EP2196936A1 (de) * | 2007-10-05 | 2010-06-16 | Panasonic Corporation | Endgerät mit sicherem start, sicheres startverfahren, sicheres startprogramm, aufzeichnungsmedium und integrierte schaltung |
| US20130138879A1 (en) * | 2011-11-28 | 2013-05-30 | Xilinx, Inc. | Circuit for and method of enabling the transfer of data by an integrated circuit |
| WO2014142659A1 (en) * | 2013-03-12 | 2014-09-18 | Uksi B.V. | Data storage device and computer system comprising such data storage device |
| US20140313840A1 (en) * | 2013-04-17 | 2014-10-23 | SK Hynix Inc. | Integrated circuit and memory device |
-
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 (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| EP2196936A1 (de) * | 2007-10-05 | 2010-06-16 | Panasonic Corporation | Endgerät mit sicherem start, sicheres startverfahren, sicheres startprogramm, aufzeichnungsmedium und integrierte schaltung |
| US20130138879A1 (en) * | 2011-11-28 | 2013-05-30 | Xilinx, Inc. | Circuit for and method of enabling the transfer of data by an integrated circuit |
| WO2014142659A1 (en) * | 2013-03-12 | 2014-09-18 | Uksi B.V. | Data storage device and computer system comprising such data storage device |
| US20140313840A1 (en) * | 2013-04-17 | 2014-10-23 | SK Hynix Inc. | Integrated circuit and memory device |
Also Published As
| Publication number | Publication date |
|---|---|
| WO2016139090A1 (de) | 2016-09-09 |
| 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 | |
| EP2962207B1 (de) | Verfahren und schaltungsanordnung für kontrollierte zugriffe auf slave-einheiten in einem ein-chip-system | |
| CN104424008A (zh) | 安全引导 rom 补丁的系统及方法 | |
| DE112018004577T5 (de) | Multiprozessorkern-vorrichtung mit mbist | |
| DE112014002419T5 (de) | Automatisches Steuersystem und Verfahren für einen echten Zufallsgenerator | |
| DE112019007230T5 (de) | Multimodus-Geschützter-Speicher | |
| DE112018006401T5 (de) | Transparent zugeordnete flash-memory-sicherheit | |
| DE112019001912T5 (de) | Schutz vor umgekehrtem überstrom für universal-serial-bus-typ-c(usb-c)-verbindersysteme | |
| EP3036676B1 (de) | Verfahren zur absicherung einer integrierten schaltung gegen unberechtigte zugriffe | |
| DE102014002302A1 (de) | System und Verfahren zum Bestimmen der operativen Robustheit eines Systems auf einem Chip | |
| EP4205009B1 (de) | Verfahren zur integritätsprüfung von nachladbaren funktionseinheiten | |
| US7683663B1 (en) | Authorization of an implementation of a user design in a programmable integrated circuit | |
| AT517154B1 (de) | Überwachung des Startvorgangs einer integrierten Schaltung | |
| DE102015212657A1 (de) | Bereitstellen eines gerätespezifischen kryptographischen Schlüssels aus einem systemübergreifenden Schlüssel für ein Gerät | |
| EP3378006B1 (de) | Verfahren zum laden eines sicheren speicherabbilds eines mikrocontrollers und anordnung mit einem mikrocontroller | |
| DE102015116181B4 (de) | Datenverarbeitung | |
| WO2008031776A1 (de) | Mikrocontroller und verfahren zum starten eines anwendungsprogramms auf einem mikrocontroller | |
| WO2013191893A1 (en) | Alternate control settings | |
| EP3767515B1 (de) | Verfahren zur dynamischen und partiellen rekonfiguration eines elektronischen bauteils | |
| EP3617928B1 (de) | Verfahren zum speichern von schlüsseldaten in einem elektronischen bauteil | |
| EP3876123B1 (de) | Anordnung und betriebsverfahren für einen sicheren hochfahrablauf einer elektronischen einrichtung | |
| EP3074862A1 (de) | Verfahren für einen sicheren hochfahrablauf eines elektronischen systems | |
| EP3896589A1 (de) | Verfahren und halbleitervorrichtung mit überwachungsmodul |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| MM01 | Lapse because of not paying annual fees |
Effective date: 20250305 |