DE102006035610A1 - Speicherzugriffssteuerung und Verfahren zur Speicherzugriffssteuerung - Google Patents

Speicherzugriffssteuerung und Verfahren zur Speicherzugriffssteuerung Download PDF

Info

Publication number
DE102006035610A1
DE102006035610A1 DE102006035610A DE102006035610A DE102006035610A1 DE 102006035610 A1 DE102006035610 A1 DE 102006035610A1 DE 102006035610 A DE102006035610 A DE 102006035610A DE 102006035610 A DE102006035610 A DE 102006035610A DE 102006035610 A1 DE102006035610 A1 DE 102006035610A1
Authority
DE
Germany
Prior art keywords
segment
memory
software section
critical
access request
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.)
Granted
Application number
DE102006035610A
Other languages
English (en)
Other versions
DE102006035610B4 (de
Inventor
Stefan Dr. Rüping
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.)
Infineon Technologies AG
Original Assignee
Infineon Technologies AG
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 Infineon Technologies AG filed Critical Infineon Technologies AG
Priority to DE102006035610A priority Critical patent/DE102006035610B4/de
Priority to US11/625,981 priority patent/US7891556B2/en
Publication of DE102006035610A1 publication Critical patent/DE102006035610A1/de
Application granted granted Critical
Publication of DE102006035610B4 publication Critical patent/DE102006035610B4/de
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1416Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights
    • G06F12/1425Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block
    • G06F12/1433Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block for a module or a part of a module
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1458Protection against unauthorised use of memory or access to memory by checking the subject access rights
    • G06F12/1491Protection against unauthorised use of memory or access to memory by checking the subject access rights in a hierarchical protection system, e.g. privilege levels, memory rings
    • 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/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • G06F21/53Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
    • 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/55Detecting local intrusion or implementing counter-measures
    • G06F21/554Detecting local intrusion or implementing counter-measures involving event detection and direct action
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6227Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database where protection concerns the structure of data, e.g. records, types, queries
    • 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/77Protecting 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 smart cards
    • 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/82Protecting input, output or interconnection devices
    • G06F21/85Protecting input, output or interconnection devices interconnection devices, e.g. bus-connected or in-line devices
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Databases & Information Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Mathematical Physics (AREA)
  • Storage Device Security (AREA)

Abstract

Eine Speicherzugriffssteuerung (100) weist eine erste Schnittstelle, die mit einem Speicher (120) verbindbar ist, und eine zweite Schnittstelle, die mit einer ersten und zweiten Ausführeinrichtung (132, 134) koppelbar ist, auf. Dabei ist in einem ersten Segment des Speichers (120) ein kritischer Softwareabschnitt und in einem zweiten Segment des Speichers (120) ein unkritischer Softwareabschnitt speicherbar. Der kritische und der unkritische Softwareabschnitt sind von der ersten Ausführeinrichtung (132) und der kritische Softwareabschnitt zusätzlich von der zweiten Ausführeinrichtung (134) ausführbar. Die Speicherzugriffssteuerung (100) weist ferner einen ersten Prüfer (102) mit einem Eingang für eine über die zweite Schnittstelle empfangene Zugriffsanfrage und einem Ausgang für ein erstes Prüfsignal auf, das anzeigt, ob die Zugriffsanfrage auf das erste Segment gerichtet ist. Ferner weist die Speicherzugriffssteuerung einen zweiten Prüfer (104) mit einem Ausgang für ein zweites Prüfsignal, das anzeigt, ob die zweite Ausführeinrichtung (134) aktiv ist, auf sowie eine Steuereinheit (106) mit Eingängen für das erste und zweite Prüfsignal und einem Ausgang für ein Alarmsignal, das anzeigt, dass die Zugriffsanfrage auf das erste Segment gerichtet ist und die zweite Ausführeinrichtung (134) nicht aktiv ist.

Description

  • Die vorliegende Erfindung befasst sich mit einer Speicherzugriffssteuerung und einem Verfahren zur Speicherzugriffssteuerung, die in Prozessorsystemen eingesetzt werden können und insbesondere für Sicherheitssysteme geeignet sind.
  • Sicherheitssysteme, wie sie beispielsweise auf Chipkarten realisiert sind, müssen vor Angriffen geschützt werden. Durch die Einführung digitaler Mechanismen zur Fehlererkennung werden insbesondere Fehlerangriffe sehr effizient abgewehrt. Unter solche Mechanismen fallen Errorcodes, die im Zusammenhang mit Speichern eingesetzt werden, oder Hardwareredundanz, die im Zusammenhang mit der verwendeten Logik realisiert wird.
  • Diese Sicherheitsmaßnahmen sind jedoch auch mit Nachteilen verbunden. So erhöht sich nicht unwesentlich die Chipfläche und der Energieverbrauch eines solchen Systems.
  • Es ist die Aufgabe der vorliegenden Erfindung, eine Speicherzugriffssteuerung und ein Verfahren zur Speicherzugriffssteuerung zu schaffen, die eine sichere Speicherzugriffssteuerung ermöglichen, ohne dabei einen erhöhten Energieverbrauch zu erfordern.
  • Diese Aufgabe wird durch eine Speicherzugriffssteuerung gemäß Anspruch 1, ein System gemäß Anspruch 4, eine Vorrichtung zum Steuern eines Zugriffs auf einen Speicher gemäß Anspruch und ein Verfahren zur Speicherzugriffssteuerung gemäß Anspruch 9 gelöst.
  • Gemäß einem Ausführungsbeispiel schafft die vorliegende Erfindung eine Speicherzugriffssteuerung mit folgenden Merkmalen:
    einer ersten Schnittstelle, die mit einem Speicher verbindbar ist, der in einem ersten Segment einen kritischen Softwareabschnitt und in einem zweiten Segment einen unkritischen Softwareabschnitt gespeichert hat, wobei der kritische und der unkritische Softwareabschnitt von einer ersten Ausführeinrichtung und der kritische Softwareabschnitt zusätzlich von einer zweiten Ausführeinrichtung ausführbar ist;
    einer zweiten Schnittstelle, die mit der ersten und der zweiten Ausführeinrichtung koppelbar ist;
    einem ersten Prüfer mit einem Eingang für eine über die zweite Schnittstelle empfangene Zugriffsanfrage und einem Ausgang für ein erstes Prüfsignal, das anzeigt, ob die Zugriffsanfrage auf das erste Segment gerichtet ist;
    einem zweiten Prüfer mit einem Ausgang für ein zweites Prüfsignal, das anzeigt, ob die zweite Ausführeinrichtung aktiv ist; und
    einer Steuereinheit mit Eingängen für das erste und zweite Prüfsignal und einem Ausgang für ein Alarmsignal, das anzeigt, dass die Zugriffsanfrage auf das erste Segment gerichtet ist und die zweite Ausführeinrichtung nicht aktiv ist.
  • Gemäß einem weiteren Ausführungsbeispiel schafft die vorliegende Erfindung eine Vorrichtung zum Steuern eines Zugriffs auf einen Speicher, wobei in einem ersten Segment des Speichers ein kritischer Softwareabschnitt und in einem zweiten Segment des Speichers ein unkritischer Softwareabschnitt speicherbar ist, und wobei der kritische und der unkritische Softwareabschnitt von einer ersten Ausführeinrichtung und der kritische Softwareabschnitt zusätzlich von einer zweiten Ausführeinrichtung ausführbar ist, mit folgenden Merkmalen:
    einer Einrichtung zum Empfangen einer Zugriffsanfrage auf den Speicher;
    einer ersten Einrichtung zum Prüfen, ob die zweite Ausführeinrichtung aktiv ist;
    einer zweiten Einrichtung zum Prüfen, ob die Zugriffsanfrage auf das erste Segment gerichtet ist; und
    einer Einrichtung zum Anzeigen, dass die Zugriffsanfrage auf das erste Segment gerichtet ist und die zweite Ausführeinrichtung nicht aktiv ist.
  • Gemäß einem weiteren Ausführungsbeispiel schafft die vorliegende Erfindung ein Verfahren zum Steuern eines Zugriffs auf einen Speicher, wobei in einem ersten Segment des Speichers ein kritischer Softwareabschnitt und in einem zweiten Segment des Speichers ein unkritischer Softwareabschnitt speicherbar ist, und wobei der kritische und der unkritische Softwareabschnitt von einer ersten Ausführeinrichtung und der kritische Softwareabschnitt zusätzlich von einer zweiten Ausführeinrichtung ausführbar ist, das folgende Schritte aufweist:
    Empfangen einer Zugriffsanfrage auf den Speicher;
    Prüfen, ob die Zugriffsanfrage auf das erste Segment gerichtet ist;
    Prüfen, ob die zweite Ausführeinrichtung aktiv ist; und
    Anzeigen, dass die Zugriffsanfrage auf das erste Segment gerichtet ist und die zweite Ausführeinrichtung nicht aktiv ist.
  • Bevorzugte Ausführungsbeispiele der vorliegenden Erfindung werden nachfolgend Bezug nehmend auf die beiliegenden Zeichnungen näher erläutert. Es zeigen:
  • 1 ein Blockschaltbild eines Systems mit einer Speicherzugriffssteuerung gemäß einem Ausführungsbeispiel der vorliegenden Erfindung;
  • 2 eine schematische Darstellung einer Steuereinheit gemäß einem Ausführungsbeispiel der vorliegenden Erfindung; und
  • 3 ein Ablaufdiagramm eines Verfahrens zur Speicherzugriffssteuerung gemäß einem Ausführungsbeispiel der vorliegenden Erfindung.
  • In der nachfolgenden Beschreibung der bevorzugten Ausführungsbeispiel der vorliegenden Erfindung werden für die in den verschiedenen Zeichnungen dargestellten und ähnlich wirkenden Elemente gleiche oder ähnliche Bezugszeichen verwendet, wobei eine wiederholte Beschreibung dieser Elemente weggelassen wird.
  • Der vorliegenden Erfindung liegt die Idee zugrunde, spezielle Sicherheitsmechanismen nur im Falle von sicherheitskritischen Operationen einzuschalten. Damit lässt sich Energie einsparen. Der erfindungsgemäße Ansatz berücksichtigt dabei Gefahren, die durch ein Verspringen einer ausgeführten Softwareausgelöst werden können. So muss ausgeschlossen sein, dass sich durch einen Softwaresprung während der Ausführung von unkritischen Software-Operationen die Möglichkeit ergibt, sicherheitskritische Code-Sequenzen auszuführen oder Zugriff auf sicherheitskritische Daten zu erhalten, ohne dass die Sicherheitsmechanismen aktiviert sind. Würde dies passieren, so könnte ein Angriff auf das System erfolgreich und das System damit unsicher sein. Gemäß der vorliegenden Erfindung wird eine Hardware-Firewall zwischen unkritischen Teilen der Software und sicherheitskritischen Teilen der Software implementiert. Mit dieser Idee ist es möglich, ein System entweder in einem Niedrig-Energie-Modus oder einem Hoch-Sicherheits-Modus zu betreiben, ohne dass das System eine Sicherheitslücke aufweisen würde.
  • Bei Systemen mit aufgedoppelten Hardwareteilen ist es somit möglich, die aufgedoppelten Hardwareteile während des Niedrig-Energie-Modus abzuschalten und während des Hoch-Sicherheits-Modus zu aktivieren, ohne dabei das System unsicher zu machen. Insbesondere lässt sich diese Idee mit wenig Auswirkungen auf die Software realisieren.
  • Unter kritischen Softwareabschnitten werden bei Ausführungsbeispielen der Erfindung solche Abschnitte verstanden, die sicherheitsrelevante Teile beinhalten und somit von zwei Ausführungseinrichtungen parallel ausgeführt werden müssen.
  • 1 zeigt ein System mit einer Speicherzugriffssteuerung 100 gemäß einem Ausführungsbeispiel der vorliegenden Erfindung. Die Speicherzugriffssteuerung 100 weist einen ersten Prüfer 102 und einen zweiten Prüfer 104, eine Steuereinheit 106 auf. Die Speicherzugriffssteuerung 100 ist mit einem Speicher 120 sowie einer ersten Ausführeinrichtung 132 und einer zweiten Ausführeinrichtung 134 gekoppelt.
  • Gemäß dem in 1 gezeigten Ausführungsbeispiel ist die Speicherzugriffssteuerung 100 mit der ersten Ausführeinrichtung 132 sowie der zweiten Ausführeinrichtung 134 verbunden, um von diesen eine Zugriffsanfrage zu empfangen. Die Zugriffsanfrage kann beispielsweise eine virtuelle Speicheradresse enthalten. Ferner ist die Speicherzugriffssteuerung 100 mit dem Speicher 120 verbunden, um einen Speicherzugriff durchzuführen. Der Speicherzugriff kann eine physikalische Adresse des Speichers 120 beinhalten. Die Speicherzugriffssteuerung 100 ist ausgebildet, um die Zugriffsanfrage der Ausführeinrichtungen 132, 134 in den Speicherzugriff auf den Speicher umzuwandeln. Handelt es sich bei der Zugriffsanfrage um eine virtuelle Adresse, so ist die Speicherzugriffssteuerung ausgebildet, um die virtuelle Adresse zu empfangen und eine, der virtuellen Adresse entsprechende physikalische Adresse auszugeben.
  • Das in 1 gezeigte System ist ausgebildet, um Softwareoperationen durchzuführen. Die dabei zugrundeliegende Software kann in dem Speicher 120 gespeichert sein. Die Software kann sicherheitskritische Abschnitte und sicherheitsunkritische Abschnitte aufweisen. Kritische Softwareabschnitte sind beispielsweise solche, die sicherheitskritische Daten verarbeiten oder Zugang zu geschützten Software- oder Hardware-Bereichen ermöglichen. Bei der Ausführung von sicherheitskritischen Softwareabschnitten ist sowohl die erste Ausführeinrichtung 132 als auch die zweite Ausführeinrichtung 134 aktiv. Dies bedeutet, das sicherheitskritische Softwareabschnitte auf aufgedoppelten Hardwareteilen ausgeführt werden. Dadurch ist eine Hardwareredundanz gegeben, die Fehlerangriffe sehr effizient abwehrt. Bei sicherheitsunkritischen Softwareabschnitten ist diese Hardwareredundanz nicht erforderlich. Somit können sicherheitsunkritische Softwareabschnitte entweder nur auf der ersten Ausführeinrichtung 132 oder nur auf der zweiten Ausführeinrichtung 134 ausgeführt werden. Es ist auch möglich, sicherheitsunkritische Softwareabschnitte auf beiden Ausführeinrichtungen 132, 134 auszuführen. Sicherheitskritische Softwareabschnitte werden dagegen immer auf beiden Ausführeinrichtungen 132, 134 ausgeführt. Der Speicher 120 ist in Segmente unterteilt. In 1 ist beispielhaft ein Segment 1 und ein Segment 2 gezeigt. Gemäß diesem Ausführungsbeispiel ist ein sicherheitskritischer Abschnitt der Software im Segment 1 und ein sicherheitsunkritischer Abschnitt der Software im Segment 2 gespeichert. Zur Segmentierung des Speichers 120 können bekannte Segmentierungsmechanismen eingesetzt werden. Dabei können kritische Software-Abschnitte in beliebigen Segmenten des Speichers 120 gespeichert sein.
  • Die Speicherzugriffssteuerung 100 ist ausgebildet, um die Zugriffsanfrage über eine zweite Schnittstelle zu empfangen. Ferner weist der erste Prüfer 102 einen Eingang zum Empfangen der Zugriffsanfrage auf. Der erste Prüfer 102 ist ausgebildet, um zu prüfen, auf welches Segment des Speichers 120 die Zugriffsanfrage gerichtet ist. Über einen Ausgang kann der erste Prüfer 102 ein erstes Prüfsignal ausgeben, das anzeigt, auf welches Segment des Speichers 120 die Zugriffsanfrage gerichtet ist. Gemäß diesem Ausführungsbeispiel kann der erste Prüfer 102 insbesondere anzeigen, ob die Zugriffsanfrage auf das Segment des Speichers 120 gerichtet ist, in dem der sicherheitskritische Abschnitt der Software gespeichert ist. Ist die Zugriffsanfrage auf das Segment 1 des Speichers 120 gerichtet, in dem der sicherheitskritische Softwareabschnitt gespeichert ist, so sollten bereits beide Ausführeinrichtungen 132, 134 aktiviert sein.
  • Der zweite Prüfer 104 ist ausgebildet, um zu prüfen, ob beide Ausführeinrichtungen 132, 134 aktiv sind. Dies kann beispielsweise durch Auslesen eines Prüfbits erfolgen, das anzeigt, ob die Ausführeinrichtungen 132, 134 aktiv sind. Beispielsweise kann das Prüfbit immer dann gesetzt sein, wenn beide Ausführeinrichtungen 132, 134 aktiv sind. Der zweite Prüfer weist einen Ausgang zum Ausgeben eines zweiten Prüfsignals auf. Das zweite Prüfsignal kann anzeigen, ob beide Ausführeinrichtungen 132, 134 aktiv sind.
  • Die Steuereinheit 106 ist ausgebildet, um das erste Prüfsignal und das zweite Prüfsignal zu empfangen. Dazu weist die Steuereinheit 106 entsprechende Eingänge für das erste und zweite Prüfsignal auf. Ferner weist die Steuereinheit 106 einen Ausgang zum Ausgeben eines Alarmsignals auf. Das Alarmsignal zeigt an, dass die Zugriffsanfrage auf das Segment 1 des Speichers 120 gerichtet ist, in dem der sicherheitskritische Softwareabschnitt gespeichert ist, und dass nicht sowohl die erste Ausführeinrichtung 132 als auch die zweite Ausführ einrichtung 134 aktiv ist. Das Alarmsignal kann von dem in 1 gezeigten System ausgegeben werden. Alternativ kann das Alarmsignal auch verwendet werden, um die Zugriffsanfrage, die das Alarmsignal ausgelöst hat, zu blockieren oder das System in einen sicheren Modus zu überführen. Ist die Zugriffsanfrage dagegen auf einen unkritschen Software-Abschnitt gerichtet und es ist nur eine der Ausführeinrichtungen 132, 134 aktiv, so wird der Alarm nicht ausgelöst.
  • Beispielsweise kann es sich bei dem in 1 gezeigten System um ein Prozessorsystem handeln, wie es auf Chipkarten realisiert ist. In diesem Fall kann es sich bei der Speicherzugriffssteuerung um eine Memory Management Unit, bei dem Speicher 120 um einen ROM-, einen RAM-Speicher oder einen NVM-Speicher (NVM = non volatile memory) und bei den Ausführeinrichtungen 132, 134 um aufgedoppelte Teile einer CPU handeln. Die Speicherzugriffssteuerung 100 kann über Adressbusse mit dem Speicher 120 sowie den Ausführeinrichtungen 132, 134 verbunden sein.
  • Die vorliegende Erfindung bietet eine Lösung, die besonders für Low-Power-Systeme, wie kontaktlose Chipkarten, von hohem Wert ist. Dabei ist speziell der geringe Stromverbrauch des erfindungsgemäßen Ansatzes für ein solches Security-System von Vorteil. Insbesondere ermöglicht der erfindungsgemäße Ansatz, den erhöhten Energieverbrauch, der bisher aufgrund von Sicherheitsmechanismen zu akzeptieren war, zu reduzieren.
  • 2 zeigt eine schematische Darstellung einer Steuereinheit 106 gemäß einem Ausführungsbeispiel der vorliegenden Erfindung. Die Steuereinheit 106 weist Deskriptoren 262, 264 auf. Bei den Deskriptoren 262, 264 kann es sich um Registersätze handeln, wie sie in herkömmlichen Memory Management Units verwendet werden. Typischerweise ist jedem Segment des Speichers 120 ein Deskriptor zugeordnet. Gemäß diesem Ausführungsbeispiel ist dem Segment 1 der Deskriptor 262 und dem Segment 2 der Deskriptor 264 zugeordnet. Beispielsweise können die Deskriptoren 262, 264 Angaben über die physikalische Basisadresse, die Länge und die Zugriffsrechte des zugehörigen Segments enthalten. Somit ist mit Hilfe der Deskriptoren 262, 264 eine Umwandlung der Zugriffsanfrage, die eine virtuelle Adresse enthält, auf den Speicherzugriff möglich, der eine physikalische Adresse enthält.
  • Gemäß dem erfindungsgemäßen Ansatz weisen die Deskriptoren 262, 264 Speicherstellen für Hoch-Sicherheits-Modus-Bits 265, 267 auf. Ist solch ein Hoch-Sicherheits-Modus-Bit 265, 267 gesetzt, so kann ein Speicherzugriff auf das dazugehörige Segment nur erfolgen, wenn beide Ausführeinrichtungen 132, 134 aktiv sind.
  • Gemäß einem alternativen Ausführungsbeispiel können die Hoch-Sicherheits-Modus-Bits 265, 267 eingesetzt werden, um die Ausführeinrichtungen 132, 134 zu aktivieren. Dies könnte beispielsweise dann erforderlich sein, wenn eine Zugriffsanfrage auf ein Segment des Speichers 120 erfolgt, in dem sicherheitskritische Softwareabschnitte gespeichert sind und bisher nur eine der Ausführeinrichtungen 132, 134 aktiv ist.
  • 3 zeigt eine Ablaufsteuerung eines Verfahrens zur Speicherzugriffssteuerung gemäß einem Ausführungsbeispiel der vorliegenden Erfindung. Gemäß diesem Ausführungsbeispiel wird beispielsweise von einem Prozessor eine virtuelle Adresse an die Speicherzugriffssteuerung abgegeben. Die Speicherzugriffssteuerung prüft in einem ersten Schritt 302, ob die empfangene virtuelle Adresse einem sicherheitskritischen Segment des Speichers zugeordnet ist. Ist dies nicht der Fall, so kann direkt die zugehörige physikalische Adresse ausgegeben werden und ein Zugriff auf den Speicher gestartet werden. Handelt es sich bei der virtuellen Adresse jedoch um eine Adresse, die einem sicherheitskritischen Segment zugeordnet ist, so wird in einem weiteren Schritt 304 überprüft, ob die Hardware-Doppelung aktiv ist. Ist die Hardware-Doppelung aktiv, so kann wiederum die der virtuellen Adresse entsprechende physikalische Adresse ausgegeben werden und der Zugriff auf den Speicher gestartet werden. Ist die Hardware-Doppelung jedoch nicht aktiv, so wird ein Alarm ausgelöst.
  • Die Kernidee der vorliegenden Erfindung ist es somit, den Segmenten, die in der Memory Management Unit (MMU; MMU = Memory Management Unit) des Systems den physikalischen auf den virtuellen Speicher abbildet, eine Kennung zu geben, mit der ein Zugriff ohne aktivierte Sicherheitsmechanismen erlaubt oder verboten wird. Sollte also ein Angriff auf das System dazu führen, dass während abgeschalteter Sicherheitsmechanismen, d. h. einer abgeschalteten Hardware-Doppelung, durch einen Angriff auf einen im Speicher abgelegten Code- oder Datenbereich zugegriffen wird, der als sicherheitsrelevant gekennzeichnet ist, so erzeugt das System automatisch einen Security-Alarm.
  • Die Hardware-Doppelung kann ausgeführt werden, indem zwei identische Prozessoren implementiert sind. Alternativ kann auch nur ein einziger Prozessor realisiert sein, bei dem einzelne Logikabschnitte doppelt ausgeführt sind und entsprechend einer erforderlichen Sicherheitsstufe der auszuführenden Software aktiviert werden können. Eine Unterscheidung zwischen dem Hoch-Sicherheits-Modus, bei dem die Hardwareredundanz aktiv ist, und dem Niedrig-Energie-Modus, bei dem die Doppelung nicht aktiv ist, kann durch die auszuführende Software, beispielsweise eine Kunden-Software, gemacht werden.
  • Abhängig von den Gegebenheiten kann das erfindungsgemäße Speicherzugriffsverfahren in Hardware oder in Software implementiert werden. Die Implementation kann auf einem digitalen Speichermedium, insbesondere einer Diskette oder CD mit elektronisch auslesbaren Steuersignalen erfolgen, die so mit einem programmierbaren Computersystem zusammenwirken können, dass das entsprechende Verfahren ausgeführt wird. Allgemein besteht die Erfindung somit auch in einem Computer-Programm- Produkt mit einem auf einem maschinenlesbaren Träger gespeicherten Programmcode zur Durchführung des erfindungsgemäßen Verfahrens, wenn das Computer-Programm-Produkt auf einem Rechner abläuft. In anderen Worten ausgedrückt kann die Erfindung somit als ein Computer-Programm mit einem Programmcode zur Durchführung des Verfahrens realisiert werden, wenn das Computer-Programm auf einem Computer abläuft.
  • 100
    Speicherzugriffssteuerung
    102
    erster Prüfer
    104
    zweiter Prüfer
    106
    Steuereinheit
    120
    Speicher
    132
    erste Ausführeinrichtung
    134
    zweite Ausführeinrichtung
    262
    erster Deskriptor
    264
    zweiter Deskriptor
    265
    erstes Hoch-Sicherheits-Modus-Bit
    267
    zweites Hoch-Sicherheits-Modus-Bit
    302
    erster Schritt
    304
    zweiter Schritt

Claims (10)

  1. Speicherzugriffssteuerung (100) mit folgenden Merkmalen: einer ersten Schnittstelle, die mit einem Speicher (120) verbindbar ist, der in einem ersten Segment einen kritischen Softwareabschnitt und in einem zweiten Segment einen unkritischen Softwareabschnitt gespeichert hat, wobei der kritische und der unkritische Softwareabschnitt von einer ersten Ausführeinrichtung (132) und der kritische Softwareabschnitt zusätzlich von einer zweiten Ausführeinrichtung (134) ausführbar ist; einer zweiten Schnittstelle, die mit der ersten und der zweiten Ausführeinrichtung (132, 134) koppelbar ist; einem ersten Prüfer (102) mit einem Eingang für eine über die zweite Schnittstelle empfangene Zugriffsanfrage und einem Ausgang für ein erstes Prüfsignal, das anzeigt, ob die Zugriffsanfrage auf das erste Segment gerichtet ist; einem zweiten Prüfer (104) mit einem Ausgang für ein zweites Prüfsignal, das anzeigt, ob die zweite Ausführeinrichtung aktiv ist; und einer Steuereinheit (106) mit Eingängen für das erste und zweite Prüfsignal und einem Ausgang für ein Alarmsignal, das anzeigt, dass die Zugriffsanfrage auf das erste Segment gerichtet ist und die zweite Ausführeinrichtung nicht aktiv ist.
  2. Speicherzugriffssteuerung gemäß Anspruch 1, bei der die Steuereinheit (106) einen weiteren Ausgang für ein Speicherzugriffssignal aufweist, mit dem ein Zugriff auf den Speicher (120) erfolgt.
  3. Speicherzugriffssteuerung gemäß einem der Ansprüche 1 oder 2, wobei die Steuereinheit (106) ein erstes Register (262), das dem ersten Segment zuordenbar ist und ein zweites Register (264), das dem zweiten Segment zuordenbar ist aufweist, und wobei das erste Register ein erstes Sicherheitsbit (265) aufweist, das anzeigt ob das erste Segment einen kritischen Softwareabschnitt aufweist und wobei das zweite Register ein zweites Sicherheitsbit (265) aufweist, das anzeigt ob das zweite Segment einen kritischen Softwareabschnitt aufweist.
  4. System mit folgenden Merkmalen: einer Speicherzugriffssteuerung (100) gemäß Anspruch 1; einem Speicher (120) mit einem ersten Segment, in dem ein kritischer Softwareabschnitt speicherbar ist, und einem zweiten Segment, in dem ein unkritischer Softwareabschnitt speicherbar ist; einer ersten Ausführeinrichtung (132), auf der der kritische und der unkritische Softwareabschnitt ausführbar ist; und einer zweiten Ausführeinrichtung (134), auf der der kritische Softwareabschnitt zusätzlich ausführbar ist.
  5. System gemäß Anspruch 4, bei dem der unkritische Softwareabschnitt auch auf der zweiten Ausführeinrichtung (134) ausführbar ist.
  6. System gemäß Anspruch 4, das auf einer Chipkarte realisierbar ist.
  7. Vorrichtung (100) zum Steuern eines Zugriffs auf einen Speicher (120), wobei in einem ersten Segment des Speichers ein kritischer Softwareabschnitt und in einem zweiten Segment des Speichers ein unkritischer Softwareabschnitt speicherbar ist, und wobei der kritische und der unkritische Softwareabschnitt von einer ersten Ausführeinrichtung und der kritische Softwareabschnitt zusätzlich von einer zweiten Ausführeinrichtung ausführbar ist, mit folgenden Merkmalen: einer Einrichtung zum Empfangen einer Zugriffsanfrage auf den Speicher; einer ersten Einrichtung (102) zum Prüfen, ob die zweite Ausführeinrichtung (134) aktiv ist; einer zweiten Einrichtung (104) zum Prüfen, ob die Zugriffsanfrage auf das erste Segment gerichtet ist; und einer Einrichtung (106) zum Anzeigen, dass die Zugriffsanfrage auf das erste Segment gerichtet ist und die zweite Ausführeinrichtung (134) nicht aktiv ist.
  8. Vorrichtung (100) gemäß Anspruch 7, mit einer Zugriffseinrichtung zum Zugreifen auf das erste Segment des Speichers, wenn die Zugriffsanfrage auf das erste Segment gerichtet ist und die zweite Ausführeinrichtung (134) aktiv ist.
  9. Verfahren zum Steuern eines Zugriffs auf einen Speicher, wobei in einem ersten Segment des Speichers ein kritischer Softwareabschnitt und in einem zweiten Segment des Speichers ein unkritischer Softwareabschnitt speicherbar ist, und wobei der kritische und der unkritische Softwareabschnitt von einer ersten Ausführeinrichtung und der kritische Softwareabschnitt zusätzlich von einer zweiten Ausführeinrichtung ausführbar ist, das folgende Schritte aufweist: Empfangen einer Zugriffsanfrage auf den Speicher; Prüfen (302), ob die Zugriffsanfrage auf das erste Segment gerichtet ist; Prüfen (304), ob die zweite Ausführeinrichtung aktiv ist; und Anzeigen, dass die Zugriffsanfrage auf das erste Segment gerichtet ist und die zweite Ausführeinrichtung nicht aktiv ist.
  10. Computerprogramm mit Programmcode zur Durchführung des Verfahrens nach Anspruch 9, wenn das Computerprogramm auf einem Computer abläuft.
DE102006035610A 2006-07-31 2006-07-31 Speicherzugriffssteuerung und Verfahren zur Speicherzugriffssteuerung Expired - Fee Related DE102006035610B4 (de)

Priority Applications (2)

Application Number Priority Date Filing Date Title
DE102006035610A DE102006035610B4 (de) 2006-07-31 2006-07-31 Speicherzugriffssteuerung und Verfahren zur Speicherzugriffssteuerung
US11/625,981 US7891556B2 (en) 2006-07-31 2007-01-23 Memory access controller and method for memory access control

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102006035610A DE102006035610B4 (de) 2006-07-31 2006-07-31 Speicherzugriffssteuerung und Verfahren zur Speicherzugriffssteuerung

Publications (2)

Publication Number Publication Date
DE102006035610A1 true DE102006035610A1 (de) 2008-02-07
DE102006035610B4 DE102006035610B4 (de) 2012-10-11

Family

ID=38884771

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102006035610A Expired - Fee Related DE102006035610B4 (de) 2006-07-31 2006-07-31 Speicherzugriffssteuerung und Verfahren zur Speicherzugriffssteuerung

Country Status (2)

Country Link
US (1) US7891556B2 (de)
DE (1) DE102006035610B4 (de)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW200935221A (en) * 2008-02-13 2009-08-16 Genesys Logic Inc System for securing an access to flash memory device and method for the same
US8954696B2 (en) 2008-06-24 2015-02-10 Nagravision S.A. Secure memory management system and method
EP2310976B1 (de) * 2008-06-24 2011-11-02 Nagravision S.A. Sicheres speicherverwaltungssystem und verfahren
EP2202664A1 (de) * 2008-12-23 2010-06-30 Gemalto SA Verfahren zum Schutz von Daten während der Ausführung eines Softwarecodes in einer elektronischen Vorrichtung
EP2461251B1 (de) * 2010-12-03 2017-06-21 Robert Bosch GmbH Speicherschutzeinheit und Verfahren zur Steuerung eines Zugangs zu einer Speichervorrichtung
WO2013077867A1 (en) * 2011-11-22 2013-05-30 Intel Corporation Access control for non-volatile random access memory across platform agents

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE68928980T2 (de) * 1989-11-17 1999-08-19 Texas Instruments Inc Multiprozessor mit Koordinatenschalter zwischen Prozessoren und Speichern

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5905738A (en) * 1991-05-19 1999-05-18 Texas Instruments Incorporated Digital bus monitor integrated circuits
DE19532640C2 (de) * 1995-08-23 2000-11-30 Siemens Ag Einrichtung zur einkanaligen Übertragung von aus zwei Datenquellen stammenden Daten
US7380085B2 (en) * 2001-11-14 2008-05-27 Intel Corporation Memory adapted to provide dedicated and or shared memory to multiple processors and method therefor
US7137553B2 (en) * 2001-12-31 2006-11-21 Digital Data Research Company Security clearance card, system and method of reading a security clearance card
US7051131B1 (en) * 2002-12-27 2006-05-23 Unisys Corporation Method and apparatus for recording and monitoring bus activity in a multi-processor environment
DE102004032237A1 (de) * 2004-07-02 2006-01-26 Infineon Technologies Ag Konfiguration von Bauelementen bei einem Übergang von einem Niedrigleistungs-Betriebsmodus in einen Normalleistungs-Betriebsmodus

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE68928980T2 (de) * 1989-11-17 1999-08-19 Texas Instruments Inc Multiprozessor mit Koordinatenschalter zwischen Prozessoren und Speichern

Also Published As

Publication number Publication date
US7891556B2 (en) 2011-02-22
US20080028128A1 (en) 2008-01-31
DE102006035610B4 (de) 2012-10-11

Similar Documents

Publication Publication Date Title
DE3048365C2 (de)
DE3700663C2 (de)
DE69533312T2 (de) Geschütztes speichersystem und verfahren dafür
DE3586651T2 (de) Echtzeit-software-monitor und schreibschutzsteuergeraet.
EP0951673B1 (de) Verfahren zur überwachung der vorgeschriebenen ausführung von softwareprogrammen
DE2629459C2 (de)
EP1326256A2 (de) Verfahren und Anordnung zur Programmierung und Verifizierung von EEPROM-Pages sowie ein entsprechendes Computerprogrammprodukt und ein entsprechendes computerlesbares Speichermedium
DE112006002072T5 (de) Mechanismus zum Aktivieren einer Eigenschaft eines Rechnersystems
DE102006035610A1 (de) Speicherzugriffssteuerung und Verfahren zur Speicherzugriffssteuerung
DE10319585B4 (de) Manipulationsgeschütztes Datenverarbeitungssystem und zugehöriges Verfahren zum Manipulationsschutz
EP0104635A2 (de) Verfahren und Anordnung zum Prüfen eines digitalen Rechners
EP1611510B1 (de) Kontrollierte ausführung eines für eine virtuelle maschine vorgesehenen programms auf einem tragbaren datenträger
DE3318101A1 (de) Schaltungsanordung mit einem speicher und einer zugriffskontrolleinheit
DE2225841B2 (de) Verfahren und Anordnung zur systematischen Fehlerprüfung eines monolithischen Halbleiterspeichers
DE4328753C2 (de) Chip-Karte und Verfahren zum Überprüfen ihrer persönlichen Identifikationsnummer (PIN-Nummer)
DE19626972A1 (de) Verfahren und Vorrichtung zur vorläufigen Freigabe für die Anwendung eines von einer elektronischen Kassette geschützten Programms
DE3700800C2 (de) Einrichtung zur Erzeugung eines Unterbrechungspunktes in einem Mikroprozessor
DE10340411B4 (de) Vorrichtung und Verfahren zur sicheren Ausführung eines Programms
EP1338970B1 (de) Verfahren und Anordnung zur Zugriffssteuerung auf EEPROMs sowie ein entsprechendes Computerprogrammprodukt und ein entsprechendes computerlesbares Speichermedium
WO1998041880A2 (de) Integrierte schaltung und verfahren zum testen der integrierten schaltung
DE102006004168A1 (de) Überprüfung eines Adressdecoders
DE102017119426A1 (de) Verfahren und vorrichtung zum test von speicherzellen
EP0613077B1 (de) Verfahren zur Reset-Erzeugung in Datenverarbeitungsanlagen
EP1899883B1 (de) Verfahren zum schutz vertraulicher daten
DE60035915T2 (de) Einrichtung und Verfahren zur Prüfung eines nichtflüchtigen wiederprogrammierbaren Speichers

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
R016 Response to examination communication
R018 Grant decision by examination section/examining division
R082 Change of representative

Representative=s name: ,

R020 Patent grant now final

Effective date: 20130112

R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee