DE102007063528A1 - System und Verfahren zum Schützen eines Sicherheitsbereichs eines Systems - Google Patents

System und Verfahren zum Schützen eines Sicherheitsbereichs eines Systems Download PDF

Info

Publication number
DE102007063528A1
DE102007063528A1 DE102007063528A DE102007063528A DE102007063528A1 DE 102007063528 A1 DE102007063528 A1 DE 102007063528A1 DE 102007063528 A DE102007063528 A DE 102007063528A DE 102007063528 A DE102007063528 A DE 102007063528A DE 102007063528 A1 DE102007063528 A1 DE 102007063528A1
Authority
DE
Germany
Prior art keywords
security area
processor
security
address
access
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.)
Withdrawn
Application number
DE102007063528A
Other languages
English (en)
Inventor
Je Myoung Yongin Ko
Young-Sik Park
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.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of DE102007063528A1 publication Critical patent/DE102007063528A1/de
Withdrawn legal-status Critical Current

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
    • 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/1441Protection 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 range
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication

Landscapes

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

Abstract

Ein System (100) umfasst eine Mehrzahl von Bus-Mastern (15, 17, 22), die mit einem Systembus (11) gerwachern (18-1, 18-2), die jeweils dazu ausgebildet sind, wenigstens einen der Mehrzahl von Bus-Mastern (15, 17, 22) zu überwachen, um zu bestimmen, ob eine Adresse, die von dem wenigstens einen Bus-Master ausgegeben wird, einer Adresse entspricht, die in einem vorbestimmten Sicherheitsbereich des Systems enthalten ist.

Description

  • Die vorliegende Erfindung betrifft ein System und ein Verfahren zum Schützen eines Sicherheitsbereichs eines Systems.
  • Da die Nutzung tragbarer Geräte, wie Mobiltelefone, PDAs (Personal Digital Assistants) oder PMPs (Portable Multimedia Players – tragbare Multimedia-Abspielgeräte) zugenommen hat, sind Sendetechnologien eingeführt worden, welche ein Empfangen verschiedener Multimediainhalte während einer Bewegung ermöglichen, beispielsweise DMB (Digital Multimedia Broadcasting), DVB-H (Digital Video Broadcasting – Handheld) oder Medienfluss (Media Flow).
  • Um jedoch nicht autorisierten und ungesetzlichen Zugriff zu verhindern, während ein Zugriff durch einen rechtmäßigen Benutzer erlaubt bleiben soll, kann ein Gerät oder eine Vorrichtung zum Schützen des gesamten Systems einschließlich Hardware oder Software nützlich sein. Zu diesem Zweck unterstützen die meisten tragbaren Geräte, welche in der Lage sind, mobile Sendungen zu empfangen, DRM (Digital Rights Management – digitales Rechtemanagement). Um die Kernanforderungen des DRM zu berücksichtigen, sollte der Sicherheitsbereich (das heißt der Sicherheitsteil) eines Systems gegen nichtautorisierten Zugriff geschützt sein.
  • Ein Ansatz zum Schutz eines Sicherheitsbereichs umfasst die Verwendung eines ARM 1176-Kerns, welcher „Trustzone" unterstützt. Wenn man jedoch die Zeit und die Kosten berücksichtigt, welche für die Entwicklung von Hardware benötigt werden, besteht Bedarf an einem System, welches das DRM unter Verwendung einer MCU (Micro Controller Unit – Mikrosteuereinheit) erfüllt, welche die TrustZone nicht unterstützt. Insbesondere besteht Bedarf daran, den Sicherheitsbereich gegen einen nicht autorisierten Zugriff in einem System zu schützen, welches einen dualen Kern (Dual Core) aus der MCU und einem DSP (digitaler Signalprozessor) verwendet.
  • In einem solchen Dual-Core-System kann die MCU durch eine gemeinsam genutzte Adresse für eine Datenkommunikation mit dem DSP auf einen internen Speicher zugreifen. Da die MCU auf dieselbe Adresse zugreifen kann, auf welche auch der DSP zugreift, können die Informationen des DSP aufgrund eines Hackerangriffs nach außen gelangen oder verändert werden, wenn die MCU durch einen Hacker angegriffen wird.
  • Der Erfindung liegt das technische Problem zugrunde, ein System und ein Verfahren zum Schützen eines Sicherheitsbereichs eines Systems anzugeben, welche einen Sicherheitsbereich in sicherer Weise gegen einen nicht autorisierten Speicherzugriff schützen.
  • Die Erfindung löst das Problem mittels eines Systems mit den Merkmalen des Patentanspruchs 1 oder des Patentanspruchs 10 und mittels eines Verfahrens zum Schützen eines Sicherheitsbereichs eines Systems mit den Merkmalen des Patentanspruchs 16.
  • Vorteilhafte Ausgestaltungen der Erfindung sind in den Unteransprüchen angegeben, deren Wortlaut hiermit durch Bezugnahme in die Beschreibung aufgenommen wird, um unnötige Textwiederholungen zu vermeiden.
  • Vorteilhafte Ausgestaltungen der Erfindung, die nachfolgend detailliert beschrieben sind, sowie zur Erleichterung des Verständnisses der Erfindung erläuterte Ausgestaltungen des Standes der Technik sind in den Zeichnungen dargestellt. Es zeigt/zeigen:
  • 1 ein Blockdiagramm eines Systems zum Schützen eines Sicherheitsbereichs gegen einen nicht autorisierten Speicherzugriff in einigen Ausgestaltungen gemäß der Erfindung;
  • 2 ein Blockschaltbild zur Darstellung von Sicherheitsbereicheinstellregistern in einigen Ausgestaltungen gemäß der Erfindung;
  • 3 eine schematische Darstellung eines abgebildeten Speichers, welche Sicherheitsbereiche darstellt, die basierend auf Informationen eingestellt wurden, die in der Sicherheitsbereichseinstellregistereinheit in 2 gemäß einigen Ausgestaltungen der Erfindung programmiert sind; und
  • 4 ein Flussdiagramm zur Darstellung von Verfahren zum Schützen von Sicherheitsbereichen eines Systems in einigen Ausgestaltungen gemäß der Erfindung.
  • Es sei darauf hingewiesen, dass ein Element, welches als mit einem anderen Element „verbunden" oder „gekoppelt" beschrieben ist, entweder direkt mit dem anderen Element verbunden oder gekoppelt sein kann, oder dass Zwischenelemente vorhanden sein können. Wenn dagegen ein Element als mit einem anderen Element „direkt verbunden" oder „di rekt gekoppelt" beschrieben ist, sind keine Zwischenelemente vorhanden.
  • Wie der Fachmann weiterhin erkennt, kann die vorliegende Erfindung in Form von Verfahren, Systemen und/oder Computerprogrammprodukten verkörpert sein. Demgemäß kann die vorliegende Erfindung die Form einer Ausgestaltung ausschließlich in Hardware, einer Ausgestaltung ausschließlich in Software oder einer Ausgestaltung in einer Kombination aus Software- und Hardwareaspekten annehmen. Weiterhin kann die vorliegende Erfindung die Form eines Computerprogrammprodukts auf einem computerlesbaren Speichermedium annehmen, wobei computerlesbarer Programmcode in dem Medium verkörpert ist. Jedes geeignete computerlesbare Medium kann Verwendung finden, einschließlich Festplatten, CD-ROMs, optische Speichervorrichtungen oder magnetische Speichervorrichtungen.
  • Bei dem durch einen Computer verwendbaren oder Computer lesbaren Medium kann es sich exemplarisch und ohne Beschränkung um ein elektronisches, magnetisches, optisches, elektromagnetisches, infrarotes oder halbleiterbasiertes System bzw. einen entsprechenden Apparat, eine entsprechende Vorrichtung oder ein entsprechendes Ausbreitungsmedium handeln. Speziellere Beispiele (in Form einer nicht abschließenden Liste) für das Computer lesbare Medium würde enthalten: eine elektrische Verbindung mit einem oder mehreren Drähten, eine tragbare Computerdiskette, einen Speicher mit wahlfreiem Zugriff (Random Access Memory – RAM), einen Nurlesespeicher (Read-Only Memory – ROM), einen löschbaren programmierbaren Nurlesespeicher (Erasable Programmable Read-Only Memory – EPROM oder Flash-Speicher), eine optische Faser und einen tragbaren Compact-Disc-Nurlesespeicher (Compact Disc Read-Only Memory – CD-ROM). Es sei darauf hingewiesen, dass das durch einen Computer verwendbare oder Computer lesbare Medium sogar Papier oder ein anderes geeignetes Medium sein könnte, auf welchem das Programm gedruckt ist, da das Programm beispielsweise durch optisches Scannen des Papiers oder des anderen Mediums elektronisch erfasst, dann kompiliert, übersetzt oder anderweitig in geeigneter Weise verarbeitet und anschließend, falls erforderlich, in einem Computerspeicher gespeichert werden kann.
  • Die Erfindung wird auch unter Verwendung von Flussdiagrammabbildungen und Blockschaltbildern beschrieben. Es sei darauf hingewiesen, dass jeder Block (der Flussdiagramme und der Blockschaltbilder) und Kombinationen von Blöcken durch Computerprogrammanweisungen implementiert sein kann bzw. können. Diese Programmanweisungen können zu einer Prozessorschaltung geliefert werden, wie einen Mikroprozessor, eine Mikrosteuereinheit oder einen anderen Prozessor, so dass die Anweisungen, welche auf dem Prozessor oder den Prozessoren ausgeführt werden, Mittel zum Implementieren der Funktionen erzeugen, die in dem Block oder den Blöcken spezifiziert sind. Die Computerprogrammanweisungen können durch den Prozessor oder die Prozessoren ausgeführt werden, um zu bewirken, dass eine Reihe von Operationsschritten durch den Prozessor oder die Prozessoren ausgeführt wird, um einen Computer implementierten Prozess zu erzeugen, so dass die Anweisungen, welche auf dem Prozessor oder auf den Prozessoren ausgeführt werden, Schritte zum Implementieren der Funktionen bereitstellen, die in dem Block oder den Blöcken angegeben sind.
  • Dementsprechend unterstützen die Blöcke Kombinationen von Mitteln zum Durchführen der angegebenen Funktionen, Kombinationen von Schritten zum Durchführen der angegebenen Funktionen und Programmanweisungsmittel zum Durchführen der angegebenen Funktionen. Es sei auch darauf hingewiesen, dass jeder Block und jede Kombination von Blöcken durch anwendungsspezifische Hardware basierte Systeme implementiert sein kann, welche die angegebenen Funktionen oder Schritte ausführen, oder durch Kombinationen von anwendungsspezifischer Hardware und Computeranweisungen.
  • Es sei ebenfalls darauf hingewiesen, dass in einigen alternativen Implementierungen die in den Blöcken angegebenen Funktionen/Tätigkeiten außerhalb der in den Flussdiagrammen angegebenen Reihenfolge auftreten können. Beispielsweise können zwei Blöcke, die in Abfolge dargestellt sind, tatsächlich im Wesentlichen gleichzeitig ausgeführt werden oder die Blöcke können manchmal in umgekehrter Reihenfolge ausgeführt werden, was von den betreffenden Funktionalitäten/Tätigkeiten abhängt.
  • 1 ist ein Blockschaltbild eines Systems 100 zum Schützen eines Sicherheitsbereichs gegen einen nicht autorisierten Speicherzugriff in einigen Ausgestaltungen gemäß der vorliegenden Erfindung. Bezugnehmend auf 1 kann das System 100 in einen Nichtsicherheitsbereich 10 und einen Sicherheitsbereich 20 unterteilt werden. Der Sicherheitsbereich (oder die Sicherheitszone) 20 ist ein Gebiet, welches dazu dient, einen nicht autorisierten Speicherzugriff durch einen externen Nutzer, beispielsweise einen Hacker, in dem System 100 zu begrenzen.
  • Der Nichtsicherheitsbereich 10 ist ein Gebiet, welches den Sicherheitsbereich 20 in dem System 100 ausschließt und auf welches durch einen Hacker über Speicher zugegriffen werden kann. Das System 100 umfasst einen Systembus 11, einen gemeinsam genutzten Speicher 12, eine Mehrzahl von Bus-Mastern 15, 17 und 22, eine Sicherheitsbereichseinstellregistereinheit 16, eine Mehrzahl von Sicherheitsüberwachern (Sicherheitsmonitoren, Security Monitors) 18-1 und 18-2, einen Multiplexer 24 und ein Sicherheitsuntersystem oder Sicherheitssubsystem 26.
  • Die Bus-Master 15, 17 und 22 besitzen Rechte, um auf den Systembus 11 zuzugreifen. Ein erster Prozessor 15, ein DMA(Direct Memory Access – direkter Speicherzugriff)-Element 17 und ein zweiter Prozessor 22 repräsentieren zumindest Teile der Bus-Master, welche eine Berechtigung besitzen, auf den Systembus 11 zuzugreifen. In einigen Ausgestaltungen gemäß der Erfindung ist der erste Prozessor 15 ein Anwendungsprozessor, der ein Benutzerprogramm ausführen kann, wie eine MCU (Micro Controller Unit – Mikrosteuereinheit). Das DMA-Element 17 kann ein typischer Bus-Master sein, der in der Lage ist, direkt auf einen Speicher zuzugreifen und Daten zu übertragen.
  • In einigen Ausgestaltungen gemäß der Erfindung führt der zweite Prozessor 22 entweder wenigstens die Rolle eines Datenprozessors oder die Rolle eines sicheren Prozessors durch. Der zweite Prozessor 22 kann ein DSP sein, welcher auf den Sicherheitsbereich zugreift. Der gemeinsam genutzte Speicher 12 umfasst einen Bereich (oder eine Domäne), welche der erste Prozessor 15 (z. B. die MCU) und der zweite Prozessor 22 (z. B. der DSP) gemeinsam nutzen können.
  • Da die Adresse, welche durch den DSP 22 zum Zugreifen auf den gemeinsam genutzten Speicher 12 verwendet wird, durch die MCU 15 verwendet werden kann, können die Informationen, welche in dem DSP 22 gespeichert sind, bei einem Angriff eines Hackers auf die MCU 15 nach außen gelangen oder durch den Hackerangriff verändert werden. Deshalb sollte der zweite Prozessor 22 gegen den Hackerangriff geschützt werden, wie die gegenwärtigen Erfinder erkannt haben.
  • In einigen Ausgestaltungen gemäß der Erfindung ist das Sicherheitssubsystem 26 hardwaremäßig dazu ausgebildet, die Rechte zu schützen, welche mit Informationen verknüpft sind, die durch ein Anwendungsprogramm des Systems 100 verwendet werden, oder die Rechte des Anwendungsprogramms selbst. Beispielsweise kann das Sicher heitssubsystem 26 in Hardware verkörpert sein, um das DRM zu unterstützen, welches in einigen tragbaren Geräten für mobile Sendungen enthalten ist.
  • Das Sicherheitssubsystem 26 umfasst eine Speichereinheit für geheime Schlüssel 26-2, eine RTC(Real Time Clock – Echtzeittakt)-Einheit 26-4 und eine Verschlüsselungsmaschine 26-6. Die Speichereinheit für geheime Schlüssel 26-2 speichert Sicherheitsschlüssel. Die Sicherheits-RTC-Einheit 26-4 ist ein Modul zum Liefern eines sicheren Takts, der gegen eine Veränderung durch einen externen Nutzer (das heißt einen Hacker) geschützt ist, welches durch Software und/oder Hardware verkörpert sein kann. Somit gehört die RTC-Einheit 26-4 zu dem Sicherheitsbereich 20.
  • Die Verschlüsselungsmaschine 26-6 interpretiert verschlüsselte Daten, beispielsweise Sendungsinhalte, die von außen empfangen werden, wobei die geheimen Schlüssel verwendet werden, die in der Speichereinheit für geheime Schlüssel 26-2 gespeichert sind. Beispielsweise kann der Sendeinhalt, der durch das System 100 empfangen wird, durch die Verschlüsselungsmaschine 26-6 interpretiert werden, indem die geheimen Schlüssel verwendet werden, um den (verschlüsselten) Inhalt zu entschlüsseln. Da die RTC-Einheit 26-4 Informationen bezüglich des Verwendungszeitraums der empfangenen Sendeinhalte bereitstellt, sollte die RTC-Einheit 26-4 gegen nicht autorisierten Zugriff geschützt werden.
  • Der erste Prozessor 15 oder der zweite Prozessor 22 können selektiv über eine Auswahlschaltung, wie einen Multiplexer 24, auf das Sicherheitssubsystem 26 zugreifen. Jeder der Sicherheitsüberwacher 18-1 und 18-2 überwacht einen entsprechenden Bus-Master, beispielsweise den ersten Prozessor 15 und das DMA-Element 17, welche zu dem Nichtsicherheitsbereich 10 der Bus-Master des Systembusses 11 gehören.
  • Jeder der Sicherheitsüberwacher 18-1 und 18-2 überwacht Speicherzugriffe durch den entsprechenden Bus-Master, der in dem Nichtsicherheitsbereich 10 enthalten ist, um zu bestimmen, ob eine Adresse auf dem Systembus 11 einer Adresse entspricht (oder in einen Adressbereichfeld fällt), die bzw. der zu einem vorbestimmten sicheren Bereich des Sicherheitsbereichs 20 gehört.
  • Somit kann das System 100 gemäß der vorliegenden Erfindung durch die MCU verkörpert sein, welche TrustZone nicht unterstützt, da Aktivitäten der Bus-Master (wie Speicherzugriffe über den Systembus 11) durch die Sicherheitsüberwacher überwacht werden und somit nicht in das Design der MCU eingeschlossen sein müssen, was es erlauben kann, eine Standard-MCU anstelle einer speziell ausgebildeten MCU zu verwenden. Die Sicherheitsbereichseinstellregistereinheit 16 speichert Informationen über Zugriffsrechte und Adressen, die in dem vorbestimmten Sicherheitsbereich enthalten sind.
  • 2 ist ein Blockschaltbild zur Darstellung eines Beispiels der Struktur der Sicherheitsbereichseinstellregistereinheit in 1. Bezugnehmend auf 1 und 2 umfasst die Sicherheitsbereichseinstellregistereinheit 16 ein erstes Register 212, ein zweites Register 214 und ein drittes Register 216. Das erste Register 212 speichert Informationen S1, die Speicherzugriffsrechte für einen entsprechenden Bus-Master anzeigen. Beispielsweise kann das erste Register 212 Informationen S1 speichern, welche anzeigen, ob eine Adresse (oder ein Speicheradressbereich) für den entsprechenden Bus-Master zugänglich, nicht zugänglich oder ausschließlich lesbar ist.
  • Das zweite Register 214 speichert Informationen S2 über Start- oder Anfangsadressen von vorbestimmten Sicherheitsbereichen. Das dritte Register 216 speichert Informationen S3 über die Größen der vorbe stimmten Sicherheitsbereiche, beispielsweise deren Offset oder Versatz. Die Sicherheitsbereichseinstellregistereinheit 16 speichert Informationen S1, S2 und S3 über die Adressen der Sicherheitsbereiche. Die Informationen S1, S2 und S3 über die Adressen der Sicherheitsbereiche können bei der Sicherheitsbereichseinstellregistereinheit 16 durch das Ausführen des Benutzerprogramms durch den ersten Prozessor 15, beispielsweise die MCU, programmiert werden.
  • Um also die bei der Sicherheitsbereichseinstellregistereinheit 16 programmierten Informationen gegen den Angriff eines externen Benutzers, beispielsweise eines Hackers, zu schützen, können die Informationen über die Sicherheitsbereiche bei der Sicherheitsbereichseinstellregistereinheit 16 in Verbindung mit (oder als Teil von) einem sicheren Hochfahren (Secure Boot) programmiert werden, wenn das System 100 einen sicheren Boot-Prozess unterstützt.
  • Genauer gesagt führt die MCU 15 das sichere Hochfahren aus. Der Bereich zum Ausführen des sicheren Hochfahrens ist ein Bereich, in den ein externer Nutzer nicht eindringen kann. Auf diese Weise kann die MCU 15 die Informationen über die Sicherheitsbereiche bei der Sicherheitsbereichseinstellregistereinheit 16 basierend auf einem sicheren Boot-Code, der in dem sicheren Boot-Prozess ausgeführt wird, programmieren.
  • Ein Zurücksetzen der Sicherheitsbereiche bei der Sicherheitsbereichseinstellregistereinheit 16 durch die MCU 15 sollte verhindert werden, nachdem das sichere Hochfahren vollständig ausgeführt wurde. Wenn das sichere Hochfahren abgeschlossen ist, erzeugt der zweite Prozessor 22, zum Beispiel der DSP, ein Steuersignal Dis, um den Zugriff durch die MCU 15 auf die Sicherheitsbereichseinstellregistereinheit 16 zu blockieren. Beispielsweise ist die MCU 15 in Abhängigkeit von dem Steuersignal Dis hinsichtlich eines Zugriffs auf die Sicherheitsbereichseinstellregistereinheit 16 deaktiviert.
  • Folglich kann jeder der Sicherheitsüberwacher 18-1 und 18-2 einen entsprechenden Bus-Master basierend auf den Informationen S1, S2 und S3 über die Sicherheitsbereiche überwachen, welche in der Sicherheitsbereichseinstellregistereinheit 16 gespeichert sind. Beispielsweise vergleicht der erste Sicherheitsüberwacher 18-1 eine Adresse, die in einem Zugriff des ersten Prozessors enthalten ist, mit einer Adresse der Sicherheitsbereiche, die basierend auf den Informationen S1, S2 und S3, welche in der Sicherheitsbereichseinstellregistereinheit 16 gespeichert sind, eingestellt wurde bzw. wurden, und gibt das Ergebnis des Vergleichs aus. Der entsprechende Sicherheitsüberwacher 18-2 kann dieselben oder ähnliche Funktionen haben.
  • 3 zeigt das Konzept von Sicherheitsbereichen, die basierend auf den Informationen eingestellt wurden, die in der Sicherheitsbereichseinstellregistereinheit 16 in 2 programmiert wurden. Bezugnehmend auf 2 und 3 können vier Sicherheitsbereiche #1 bis #4 in dem gemeinsam genutzten Speicher 12 eingestellt oder eingerichtet werden. In dem gemeinsam genutzten Speicher 12 sind Gebiete außerhalb der Sicherheitsbereiche #1 bis #4 Nichtsicherheitsbereiche.
  • Beispielsweise handelt es sich bei dem ersten Sicherheitsbereich #1 um ein unzugängliches Gebiet, welches ein Datenabschnittsgebiet darstellen kann, in dem Sicherheitsdaten des zweiten Prozessors 22, beispielsweise des DSP, lokalisiert sind. Das zweite Sicherheitsgebiet #2 ist ein unzugängliches Gebiet, welches einem Programmspeicher entsprechen kann, in dem ein Sicherheits-F/W-Code des zweiten Prozessors 22, beispielsweise des DSP, lokalisiert ist. Der dritte Sicherheitsbereich #3 ist ein unzugängliches Gebiet, bei dem es sich um ein Speichergebiet, beispielsweise einen RAM, des DSP 22 handeln kann, wel ches eine Trap/Patch-Funktion haben kann, um einen ROM-Code des DSP 22 zu ergänzen oder zu „flicken".
  • Der vierte Sicherheitsbereich #4 ist ein zugängliches Nurlesegebiet und kann ein Speichergebiet sein, in dem ein Schutzcode lokalisiert ist, welcher von dem DRM bezüglich des ersten Prozessors 15, beispielsweise der MCU, benötigt wird. Auf diese Weise können durch das Einstellen des ersten Sicherheitsgebiets #1 und des zweiten Sicherheitsgebiets #2 die Informationen in dem DSP 22 geschützt werden, selbst wenn die MCU 15 durch einen Hacker angegriffen wird.
  • 4 ist ein Flussdiagramm zur Darstellung eines Verfahrens zum Schützen von Sicherheitsbereichen eines Systems gemäß einer Ausgestaltung der vorliegenden Erfindung. Bezugnehmend auf 1 und 4 programmiert der erste Prozessor 15 die Informationen S1 bis S3, um Sicherheitsbereiche bei der Sicherheitsbereichseinstellregistereinheit 16 einzustellen oder einzurichten (S410). Der erste Prozessor 15 kann die Informationen S1 bis S3 bei der Sicherheitsbereichseinstellregistereinheit 16 basierend auf dem sicheren Boot-Code Cd programmieren.
  • Jeder beliebige der Bus-Master 15, 17 und 22 des Systems 100 kann durch den Systembus 11 auf den ersten Adressbereich in dem System 100 zugreifen (S420). Der Sicherheitsüberwacher überwacht, ob die Adresse des ersten Adressbereichs, auf welches der Bus-Master zugreift, irgendeiner der Adressen der eingestellten Sicherheitsbereiche entspricht (S430).
  • Beispielsweise versucht der erste Prozessor 15, beispielsweise eine MCU, auf ein Gebiet zuzugreifen, welches Sicherheitsdaten in einem Datenabschnitt des zweiten Prozessors 22, beispielsweise eines DSP, zugeordnet ist. Der erste Sicherheitsüberwacher 18-1 kann überwachen, ob die Adresse eines Gebiets, welches für die Sicherheitsdaten in dem Datenabschnitt zugewiesen ist, worauf die MCU zugreift, irgendeiner der Adressen der Sicherheitsbereiche entspricht.
  • Wenn die Adressen einander gemäß dem Ergebnis der Überwachung nicht entsprechen, erlaubt der Sicherheitsüberwacher 18-1 dem Bus-Master, auf den ersten Adressbereich zuzugreifen (S440). Wenn dagegen die Adressen einander entsprechen, verweigert der Sicherheitsüberwacher 18-1 den Zugriff des Bus-Masters auf den ersten Adressbereich (S450).
  • Wie oben beschrieben, kann das System gemäß der vorliegenden Erfindung unter Verwendung der MCU ausgebildet sein, welche TrustZone nicht unterstützt, da die Überwachung durch die Sicherheitsüberwacher erfolgt, die außerhalb des Prozessorkerns angeordnet sein können, welcher dem Sicherheitsüberwacher entspricht. Des Weiteren ist bei einigen Ausgestaltungen gemäß der Erfindung der DSP eines dualen Kerns aus der MCU und dem DSP, welche sich die Speicheradresse für eine Datenkommunikation teilen, als ein Sicherheitsbereich eingerichtet, so dass die Effizienz der Verwendung eines Speichers verbessert ist. Selbst wenn die MCU durch einen Hacker angegriffen wird, sind die Informationen, die in dem DSP gespeichert sind, sicher geschützt.
  • Ausgestaltungen gemäß der Erfindung können auch als Computer lesbarer Code bereitgestellt werden, der in einem computerlesbaren Medium gespeichert ist. Das Computer lesbare Aufzeichnungsmedium ist ein beliebiges Datenspeicherelement, das Daten speichern kann, die anschließend durch ein Computersystem gelesen werden können. Das computerlesbare Aufzeichnungsmedium kann auch über Computersysteme verbreitet werden, die durch ein Netz gekoppelt sind, so dass der Computer lesbare Code in einer verteilten Weise gespeichert und ausgeführt wird. Darüber hinaus können funktionale Programme, Codes und Codesegmente zum Ausführen der vorliegenden Erfindung in einfacher Weise durch Programmierer erstellt werden, die Fachleute auf dem für die vorliegende Erfindung maßgeblichen Gebiet sind.

Claims (19)

  1. System (100), aufweisend: – eine Mehrzahl von Bus-Mastern (15, 17, 22), die mit einem Systembus (11) gekoppelt sind; und – eine Mehrzahl von Sicherheitsüberwachern (18-1, 18-2), die jeweils dazu ausgebildet sind, wenigstens einen der Mehrzahl von Bus-Mastern (15, 17, 22) zu überwachen, um zu bestimmen, ob eine Adresse, die von dem wenigstens einen Bus-Master ausgegeben wird, einer Adresse entspricht, die in einem vorbestimmten Sicherheitsbereich des Systems enthalten ist.
  2. System nach Anspruch 1, dadurch gekennzeichnet, dass der wenigstens eine Bus-Master einen ersten Prozessor aufweist, der dazu ausgebildet ist, ein Benutzerprogramm auszuführen, und dass einer der Mehrzahl von Sicherheitsüberwachern, welcher dem ersten Prozessor zugeordnet ist, dazu ausgebildet ist, zu überwachen, ob die Adresse einer Adresse entspricht, die in dem vorbestimmten Sicherheitsbereich enthalten ist.
  3. System nach Anspruch 2, dadurch gekennzeichnet, dass ein zweiter der Mehrzahl von Bus-Mastern einen zweiten Prozessor aufweist, der in dem vorbestimmten Sicherheitsbereich enthalten ist.
  4. System nach Anspruch 3, dadurch gekennzeichnet, dass das System weiterhin aufweist: – einen gemeinsam genutzten Speicher, der mit dem ersten Prozessor und dem zweiten Prozessor verbunden und von diesen gemeinsam genutzt ist.
  5. System nach Anspruch 4, weiterhin aufweisend: – eine Sicherheitsbereichseinstellregistereinheit, die mit der Mehrzahl von Sicherheitsüberwachern gekoppelt und dazu ausgebildet ist, Informationen zu speichern, die Zugriffsrechte anzeigen, die mit Adressen korrespondieren, die in dem vorbestimmten Sicherheitsbereich enthalten sind.
  6. System nach Anspruch 5, dadurch gekennzeichnet, dass der erste Prozessor dazu ausgebildet ist, einen sicheren Boot-Vorgang auszuführen, um die Informationen, welche Zugriffsrechte anzeigen, in der Sicherheitsbereichseinstellregistereinheit zu speichern.
  7. System nach Anspruch 6, dadurch gekennzeichnet, dass der zweite Prozessor eine Programmieroperation der Sicherheitsbereichseinstellregistereinheit durch den ersten Prozessor deaktiviert, nachdem der sichere Boot-Vorgang abgeschlossen ist.
  8. System nach einem der Ansprüche 1 bis 7, weiterhin aufweisend: – eine Sicherheitsbereichseinstellregistereinheit, die mit der Mehrzahl von Sicherheitsüberwachern verbunden und dazu ausgebildet ist, Informationen bezüglich digitales Rechtemanagement zu speichern, die anzeigen, ob ein Prozess, der von einem der Mehrzahl von Bus-Mastern ausgeführt wird, bei Adressen in dem vorbestimmten Sicherheitsbereich lesend/schreibend, nur lesend oder nicht auf diese Adressen zugreifen darf.
  9. System nach einem der Ansprüche 1 bis 8, dadurch gekennzeichnet, dass die Mehrzahl von Sicherheitsüberwachern außerhalb jeweiliger Kerne angeordnet sind, die zum Implementieren von Prozessoren verwendet werden, die zum Ausführen von Prozessen eingesetzt werden, die unterschiedliche Zugriffsrechte auf einen Speicher aufweisen, den die Prozesse gemeinsam nutzen.
  10. System, aufweisend: – einen ersten Prozessor (15), der dazu ausgebildet ist, ein Benutzerprogramm auszuführen; – eine Sicherheitsbereichseinstellregistereinheit (16), die dazu ausgebildet ist, Informationen zu speichern, welche Zugriffsrechte anzeigen, die mit Adressen in einem vorbestimmten Sicherheitsbereich korrespondieren; und – einen Sicherheitsüberwacher (18-1, 18-2), der mit der Sicherheitsbereichseinstellregistereinheit (16) und dem ersten Prozessor (15) verbunden und dazu ausgebildet ist, zu überwachen, ob eine Adresse, die von dem ersten Prozessor (15) auf einem Systembus ausgegeben wird, einer Adresse entspricht, die in dem vorbestimmten Sicherheitsbereich des Systems enthalten ist.
  11. System nach Anspruch 10, dadurch gekennzeichnet, dass die Informationen, welche Zugriffsrechte korrespondierender Adressen anzeigen, Informationen bezüglich digitales Rechtemanagement umfassen, die anzeigen, ob ein Prozess, der von dem ersten Prozessor ausgeführt wird, lesend/schreibend, nur lesend oder nicht auf die Adressen in dem vorbestimmten Sicherheitsbereich zugreifen darf.
  12. System nach Anspruch 10 oder 11, weiterhin aufweisend: – einen zweiten Prozessor, der in dem vorbestimmten Sicherheitsbereich des Systems enthalten ist.
  13. System nach einem der Ansprüche 10 bis 12, dadurch gekennzeichnet, dass die Sicherheitsbereichseinstellregistereinheit aufweist: – ein erstes Register, das dazu ausgebildet ist, Informationen zu speichern, welche Zugriffsrechte für jeden vorbestimmten Sicherheitsbereich in dem System anzeigen; – ein zweites Register, das dazu ausgebildet ist, Anfangsadressen für jeden vorbestimmten Sicherheitsbereich zu speichern; und – ein drittes Register, das dazu ausgebildet ist, Größeninformationen für jeden vorbestimmten Sicherheitsbereich zu speichern.
  14. System nach einem der Ansprüche 10 bis 13, dadurch gekennzeichnet, dass der erste Prozessor einen sicheren Boot-Vorgang ausführt, um die Informationen in die Sicherheitsbereichseinstellregistereinheit zu programmieren.
  15. System nach Anspruch 14, dadurch gekennzeichnet, dass der zweite Prozessor Operationen bezüglich der Sicherheitsbereichseinstellregistereinheit durch den ersten Prozessor deaktiviert, nachdem der sichere Boot-Vorgang durch den ersten Prozessor abgeschlossen ist.
  16. Verfahren zum Schützen eines Sicherheitsbereichs eines Systems mit den Schritten: – Ausgeben einer ersten Adresse zum Zugreifen auf einen ersten Adressbereich; – Vergleichen der ersten Adresse mit Adressen, die sicheren Bereichen eines gemeinsam genutzten Speichers zugeordnet sind, wobei sichere und nicht sichere Prozesse auf den gemeinsam genutzten Speicher zugreifen; und – Erlauben oder Blockieren eines Zugriffs auf die erste Adresse basierend darauf, ob die erste Adresse einer Adresse innerhalb der sicheren Bereiche des gemeinsam genutzten Speichers entspricht.
  17. Verfahren nach Anspruch 16, weiterhin beinhaltend ein Programmieren von Sicherheitsbereichen unter Verwendung eines Regis ters während eines sicheren Bootens, um wenigstens einen Sicherheitsbereich zu initialisieren.
  18. Verfahren nach Anspruch 17, weiterhin beinhaltend ein Deaktivieren einer weiteren Programmierung der Sicherheitsbereiche nach Abschluss des sicheren Bootens.
  19. Verfahren nach einem der Ansprüche 16 bis 18, dadurch gekennzeichnet, dass das Erlauben oder Blockieren eines Zugriffs einen lesenden/schreibenden Zugriff, nur einen lesenden Zugriff oder keinen Zugriff auf die erste Adresse umfasst basierend auf Informationen bezüglich digitales Rechtemanagement für einen zugehörigen Prozess, der die erste Adresse ausgegeben hat.
DE102007063528A 2007-01-17 2007-12-27 System und Verfahren zum Schützen eines Sicherheitsbereichs eines Systems Withdrawn DE102007063528A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020070005080A KR20080067774A (ko) 2007-01-17 2007-01-17 허가되지 않은 메모리 접근으로부터 비밀 영역을 보호하기위한 방법 및 시스템
KR10-2007-0005080 2007-01-17

Publications (1)

Publication Number Publication Date
DE102007063528A1 true DE102007063528A1 (de) 2008-07-24

Family

ID=39531015

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102007063528A Withdrawn DE102007063528A1 (de) 2007-01-17 2007-12-27 System und Verfahren zum Schützen eines Sicherheitsbereichs eines Systems

Country Status (4)

Country Link
US (1) US20080172749A1 (de)
KR (1) KR20080067774A (de)
CN (1) CN101226508A (de)
DE (1) DE102007063528A1 (de)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2442023B (en) * 2006-09-13 2011-03-02 Advanced Risc Mach Ltd Memory access security management
US8127131B2 (en) * 2008-04-10 2012-02-28 Telefonaktiebolaget Lm Ericsson (Publ) System and method for efficient security domain translation and data transfer
US8943330B2 (en) 2011-05-10 2015-01-27 Qualcomm Incorporated Apparatus and method for hardware-based secure data processing using buffer memory address range rules
KR101954733B1 (ko) * 2012-10-26 2019-03-06 삼성전자주식회사 보안 콘텐츠를 처리하는 시스템 온 칩 및 그것을 포함하는 모바일 장치
CN105677247B (zh) * 2015-12-31 2018-12-21 北京联想核芯科技有限公司 一种信息处理方法和电子设备
CN108197503B (zh) * 2017-12-15 2020-09-15 杭州中天微系统有限公司 一种为间接访问存储控制器增加保护功能的装置
EP3644192B1 (de) * 2018-08-23 2022-04-20 Shenzhen Goodix Technology Co., Ltd. Master-chip, slave-chip und dma-übertragungssystem zwischen chips
US11182507B2 (en) * 2018-08-30 2021-11-23 Micron Technology, Inc. Domain crossing in executing instructions in computer processors
US11461021B2 (en) 2020-03-09 2022-10-04 SK Hynix Inc. Computing system and operating method thereof
US11455102B2 (en) * 2020-03-09 2022-09-27 SK Hynix Inc. Computing system and operating method thereof
CN113157543B (zh) * 2021-05-14 2023-07-21 海光信息技术股份有限公司 一种可信度量方法及装置、服务器、计算机可读存储介质
CN113312676B (zh) * 2021-05-25 2022-07-19 飞腾信息技术有限公司 数据访问方法、装置、计算机设备及可读存储介质

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5557743A (en) * 1994-04-05 1996-09-17 Motorola, Inc. Protection circuit for a microprocessor
JP3519182B2 (ja) * 1995-09-05 2004-04-12 株式会社日立製作所 情報処理システムおよびバスアービタならびにバス制御方法
JPH10228421A (ja) * 1997-02-14 1998-08-25 Nec Ic Microcomput Syst Ltd メモリアクセス制御回路
JP2002353960A (ja) * 2001-05-30 2002-12-06 Fujitsu Ltd コード実行装置およびコード配布方法
US6820177B2 (en) * 2002-06-12 2004-11-16 Intel Corporation Protected configuration space in a protected environment
JP4302641B2 (ja) * 2002-11-18 2009-07-29 エイアールエム リミテッド デバイスによるメモリへのアクセスの制御
US7149862B2 (en) * 2002-11-18 2006-12-12 Arm Limited Access control in a data processing apparatus
US7334123B2 (en) * 2003-05-02 2008-02-19 Advanced Micro Devices, Inc. Computer system including a bus bridge for connection to a security services processor
US6922740B2 (en) * 2003-05-21 2005-07-26 Intel Corporation Apparatus and method of memory access control for bus masters
US7444668B2 (en) * 2003-05-29 2008-10-28 Freescale Semiconductor, Inc. Method and apparatus for determining access permission
WO2006014554A2 (en) * 2004-07-07 2006-02-09 University Of Maryland Method and system for monitoring system memory integrity
US7921303B2 (en) * 2005-11-18 2011-04-05 Qualcomm Incorporated Mobile security system and method
US20070174910A1 (en) * 2005-12-13 2007-07-26 Zachman Frederick J Computer memory security platform

Also Published As

Publication number Publication date
KR20080067774A (ko) 2008-07-22
CN101226508A (zh) 2008-07-23
US20080172749A1 (en) 2008-07-17

Similar Documents

Publication Publication Date Title
DE102007063528A1 (de) System und Verfahren zum Schützen eines Sicherheitsbereichs eines Systems
EP3274825B1 (de) Verfahren und ausführungsumgebung zum gesicherten ausführen von programmbefehlen
DE112005003340B4 (de) Mechanismus zum Bestimmen der Vertrauenswürdigkeit von Außerbandverwaltungsagenten
DE60314782T2 (de) Vorrichtung zum Generieren eines verschlüsselten Programms
DE3689569T2 (de) Verfahren zur Systemdateiensicherung und Datenverarbeitungseinheit zu dessen Durchführung.
DE112005002985B4 (de) Verfahren zum Einrichten einer vertrauenswürdigen Ablaufumgebung in einem Computer
DE112007003231B4 (de) Programmierbare Anzeigevorrichtung und Steuersystem
DE10392470T5 (de) System und Verfahren zum Ausführen von Initialisierungsbefehlen einer gesicherten Umgebung
DE102009013384A1 (de) System und Verfahren zur Bereitstellung einer sicheren Anwendungsfragmentierungsumgebung
DE112009004762T5 (de) System und verfahren zum durchführen einer verwaltunosoperation
EP1798653B1 (de) Verfahren, Computerprogrammprodukt und Vorrichtung zum Schützen eines einen Funktionsblock aufweisenden Programms
DE102020119389A1 (de) Vorrichtung und Verfahren zum sicheren Verwalten von Schlüsseln
DE102007054052A1 (de) System und Verfahren zum Verhindern einer nicht autorisierten Installation eines Softwareprogramms
EP1158384A1 (de) Sicherheits-Datenverarbeitungseinheit sowie dazugehöriges Verfahren
EP2111586B1 (de) Ein-chip-computer und tachograph
EP1164456A1 (de) Software-Schutzmechanismus
EP2299380A1 (de) Wechselspeichermedium für einen Computer, Verwendung eines Wechselspeichermediums und Verfahren zum Starten und Betreiben eines Computers
DE102006035610B4 (de) Speicherzugriffssteuerung und Verfahren zur Speicherzugriffssteuerung
WO2011104136A1 (de) Hardware-einrichtung
EP3036676B1 (de) Verfahren zur absicherung einer integrierten schaltung gegen unberechtigte zugriffe
DE10340411B4 (de) Vorrichtung und Verfahren zur sicheren Ausführung eines Programms
DE102021107211A1 (de) Speichermodul-Authentifizierungserweiterung
DE602004002241T2 (de) Schutz eines auf ausführungwartenden Programms in einem Speicher für einen Mikroprozessor
EP3191902B1 (de) Verfahren zum zugreifen auf funktionen eines embedded-geräts
DE102005046696B4 (de) Verfahren zum Erzeugen von geschütztem Programmcode und Verfahren zum Ausführen von Programmcode eines geschützten Computerprogramms sowie Computerprogrammprodukt

Legal Events

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

Effective date: 20110701