DE60027248T2 - Verfahren zur Verhinderung eines auf einem Speicher unberechtigten Zugriffs - Google Patents

Verfahren zur Verhinderung eines auf einem Speicher unberechtigten Zugriffs Download PDF

Info

Publication number
DE60027248T2
DE60027248T2 DE60027248T DE60027248T DE60027248T2 DE 60027248 T2 DE60027248 T2 DE 60027248T2 DE 60027248 T DE60027248 T DE 60027248T DE 60027248 T DE60027248 T DE 60027248T DE 60027248 T2 DE60027248 T2 DE 60027248T2
Authority
DE
Germany
Prior art keywords
memory
program code
access
processor
program
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
DE60027248T
Other languages
English (en)
Other versions
DE60027248D1 (de
Inventor
Stefan Schauer
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.)
Texas Instruments Deutschland GmbH
Original Assignee
Texas Instruments Deutschland GmbH
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 Texas Instruments Deutschland GmbH filed Critical Texas Instruments Deutschland GmbH
Priority to DE60027248T priority Critical patent/DE60027248T2/de
Application granted granted Critical
Publication of DE60027248D1 publication Critical patent/DE60027248D1/de
Publication of DE60027248T2 publication Critical patent/DE60027248T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/78Protecting 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
    • G06F21/79Protecting 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 in semiconductor storage media, e.g. directly-addressable memories
    • 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/1466Key-lock mechanism

Landscapes

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

Description

  • Die Erfindung bezieht sich auf ein Verfahren zum Verhindern eines unbefugten Zugriffs auf den Speicher einer zur Durchführung einer gewünschten Funktion programmierbaren integrierten Schaltung, die mindestens eine Eingabe/ Ausgabe-Schnittstelle, einen Prozessor und den Speicher enthält.
  • In immer größerem Umfang werden auf vielen verschiedenen Anwendungsgebieten integrierte Schaltungen eingesetzt, die zur Durchführung gewünschter Funktionen programmiert werden können. Die integrierten Schaltungen enthalten dabei einen Speicher, in den ein Programmcode eingegeben werden kann, der von der gewünschten Funktion abhängt und auf dessen Basis der ebenfalls in der integrierten Schaltung enthaltene Prozessor arbeitet. Der Programmcode ist in der Regel eine spezielle Entwicklung des Herstellers und somit dessen geistiges Eigentum, das vor fremdem Zugriff geschützt werden soll. Der Schutz gegen diesen fremden Zugriff auf den Speicher, in dem der Programmcode abgelegt ist, wird bisher dadurch erzielt, dass an geeigneter Stelle in der integrierten Schaltung eine Schmelzsicherung vorgesehen wird, die nach der Eingabe des Programmcodes in den Speicher unterbrochen wird, so dass es dann nicht mehr möglich ist, von außen her auf den Speicher zuzugreifen und beispielsweise den Programmcode auszulesen oder zu verändern. Diese Möglichkeit ist in diesem Fall sogar dem Anwender verwehrt. Nur der Prozessor kann intern noch auf den Speicher zugreifen, so dass er entsprechend dem gespeicherten Programm arbeiten kann.
  • Ein Verfahren, mit dem ein berechtigter Zugriff auf ein Datenverarbeitungssystem freigegeben wird, ist aus der US-A-5 704 039 bekannt. Ein Sicherheitsmodus zur Verhinderung eines Zugriffs von außen wird durch Bereitstellen eines in mehreren Maskenregistern abgelegten Codes so entsperrt, dass das System gezielt mit einer externen Vorrichtung kommunizieren kann. Bei Empfang eines Rücksetzsignals wählt ein Selektor ein erstes Maskenregister aus und ruft daraus einen ersten gespeicherten Adressenwert und einen ersten gespeicherten Datenwert ab. Der erste gespeicherte Adressenwert und der erste gespeicherte Datenwert werden von einem Komparator mit einem ersten Adressenwert bzw. einem ersten Datenwert verglichen. Dieser Auswähl- und Vergleichsvorgang wird fortgesetzt, bis ein endgültiges Übereinstimmungssignal aktiv ist. Wird das endgültige Übereinstimmungssignal aktiv, so wird ein Sicherheitssignal negiert und kann das System mit dem externen Anwender kommunizieren.
  • Der Erfindung liegt die Aufgabe zugrunde, ein Verfahren der eingangs angegebenen Art so auszugestalten, dass es unter Aufrechterhaltung eines Schutzes gegen unbefugten Zugriff möglich ist, den im Speicher abgelegten Programmcode nachträglich zu ändern.
  • Diese Aufgabe wird gemäß der Erfindung durch die Merkmale von Anspruch 1 gelöst.
  • Bei Anwendung des erfindungsgemäßen Verfahrens kann ein Zugriff auf den Speicher von außen her nur dann erfolgen, wenn mit der Zugriffsanforderung ein Programmcodeabschnitt eingegeben wird, der im Zuge des vorherigen Programmierungsvorgangs an der vorbestimmten Adresse im Speicher abgelegt worden ist. Nur bei Übereinstimmung der beiden Programmcodeabschnitte kann erneut auf den Speicher zugegriffen und ein neuer Programmcode eingegeben werden. Da nur derjenige, der die vorherige Programmierung durchgeführt hat, den Programmcodeabschnitt kennt, der für die Zugangsfreigabe benötigt wird, ist der Speicher gegen einen unbefugten Zugriff gesichert.
  • Vorteilhafterweise kann als programmspezifischer Programmcodeabschnitt der Abschnitt verwendet werden, der die Interruptvektoren enthält. Es ist auch möglich, für diesen Programmcodeabschnitt den Abschnitt zu verwenden, der die Definition der im Programm verwendeten Konstanten oder Variablen enthält.
  • Die Erfindung wird nun unter Bezugnahme auf die Zeichnung beispielshalber erläutert. In der Zeichnung zeigen:
  • 1 eine schematische Darstellung einer integrierten Schaltung, in der das erfindungsgemäße Verfahren angewendet werden kann; und
  • 2 eine schematische Darstellung einer Programmcodegruppe mit einem programmspezifischen Abschnitt zur Verwendung im erfindungsgemäßen Verfahren.
  • 1 zeigt eine integrierte Schaltung 10, die eine Eingabe/Ausgabe-Schnittstelle 12, einen Prozessor 14 und einen Speicher 16 enthält. Die integrierte Schaltung 10 kann natürlich noch weitere Baugruppen enthalten, die aber für das Verständnis des hier zu beschreibenden Verfahrens keine Rolle spielen.
  • Damit die integrierte Schaltung 10 in der vom Anwender gewünschten Weise arbeitet, muss in den Speicher 16 ein Programmcode eingegeben werden, der die gewünschte Arbeitsweise des Prozessors 14 definiert. Zur Eingabe dieses Programmcodes ist im Prozessor 14 ein so genanntes Urladeprogramm enthalten, dessen Aufgabe darin besteht, jeglichen Zugriff auf den Speicher 16 und das Eingeben eines Programmcodes über die Eingabe/Ausgabe-Schnittstelle 12 an der gewünschten Adresse zu steuern.
  • Der Programmcode besteht gemäß 2 aus aufeinanderfolgenden Bytes, die nacheinander in den Speicher 16 unter der Steuerung durch das Urladeprogramm eingegeben werden. Der Programmcode enthält einen Abschnitt 18, der vom Urladeprogramm an einer bestimmten Adresse im Speicher 16 abgelegt wird. Dieser Abschnitt 18 ist ein Teil des Programmcodes; sein Inhalt ist vom verwendeten Programmcode abhängig.
  • Nachdem der Programmcode im Speicher 16 gespeichert worden ist, kann die integrierte Schaltung 10 die vom Anwender gewünschte Funktion ausüben.
  • Falls es erforderlich ist, die integrierte Schaltung 10 umzuprogrammieren, damit sie eine andere Funktion ausübt, muss der im Speicher 16 gespeicherte Programmcode geändert werden. Dazu ist es erforderlich, auf den Speicher 16 zuzugreifen. Zur Durchführung eines solchen Umprogrammierungsvorgangs wird erneut das Urladeprogramm aktiviert, damit dieses die Abspeicherung des neuen Programmcodes im Speicher 16 steuern kann. Das Urladeprogramm gibt den Zugriff auf den Speicher 16 jedoch nur dann frei, wenn ihm über die Eingabe/ Ausgabe-Schnittstelle der Programmcodeabschnitt 18 zugeführt wird, der beim vorherigen Programmierungsvorgang an der vorbestimmten Adresse im Speicher 16 abgelegt worden ist. Da dieser Abschnitt des Programmcodes aber nur demjenigen bekannt ist, der die vorherige Programmierung durchgeführt hat, ist es für Unbefugte nicht möglich, Zugang zum Speicher 16 zu erhalten, um beispielsweise den darin gespeicherten Programmcode auszulesen oder sogar zu ändern.
  • Als Programmcodeabschnitt 18 ist vorzugsweise der Abschnitt zu verwenden, der die Interruptvektoren enthält. Dieser Abschnitt hängt jeweils speziell vom Programmcode ab und ist somit von Programm zu Programm unterschiedlich. Es ist aber auch ohne weiteres möglich, denjenigen Abschnitt des Programmcodes zu verwenden, in dem die Konstanten oder Variablen definiert sind, die im Programm verwendet werden.
  • Durch das beschriebene Verfahren kann somit ein im Speicher einer integrierten Schaltung gespeicherter Programmcode sicher und zuverlässig vor einem unbefugten Zugriff geschützt werden. Dabei ist es nicht erforderlich, ein eigenes Zugangspasswort festzulegen, das an einem bestimmten Platz im Speicher abgespeichert werden müsste.

Claims (3)

  1. Verfahren zum Verhindern eines unbefugten Zugriffs auf den Speicher (16) einer zur Durchführung einer gewünschten Funktion programmierbaren integrierten Schaltung (10), die mindestens eine Eingabe/Ausgabe-Schnittstelle (12), einen Prozessor (14) und den Speicher (16) enthält, dadurch gekennzeichnet, dass bei der Programmierung der integrierten Schaltung (10), bei der über ihre Eingabe/Ausgabe-Schnittstelle (12) ein Programmcode in den Speicher (16) eingegeben wird, ein für den Programmcode spezifischer Programmcodeabschnitt (18) unter der Steuerung durch den Prozessor (14) an einer vorbestimmten Adresse im Speicher (16) abgelegt wird und dass bei jedem weiteren versuchten Zugriff auf den Speicher (16) zur Eingabe eines neuen Programmcodes der Zugriff von außen nur freigegeben wird, wenn zusammen mit der Zugriffsanforderung mindestens ein Programmcodeabschnitt in den Prozessor (14) eingegeben wird, der mit dem im Zuge des vorherigen Programmierungsvorgangs an der vorbestimmten Adresse im Speicher (16) abgelegten Programmcodeabschnitt (18) übereinstimmt.
  2. Verfahren nach Anspruch 1, bei dem als programmspezifischer Programmcodeabschnitt (18) der Abschnitt verwendet wird, der die Interruptvektoren enthält.
  3. Verfahren nach Anspruch 1, bei dem als programmspezifischer Programmcodeabschnitt (18) der Abschnitt verwendet wird, der die Definition der im Programm verwendeten Konstanten bzw. Variablen enthält.
DE60027248T 1999-10-18 2000-10-17 Verfahren zur Verhinderung eines auf einem Speicher unberechtigten Zugriffs Expired - Lifetime DE60027248T2 (de)

Priority Applications (1)

Application Number Priority Date Filing Date Title
DE60027248T DE60027248T2 (de) 1999-10-18 2000-10-17 Verfahren zur Verhinderung eines auf einem Speicher unberechtigten Zugriffs

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
DE19950118A DE19950118C2 (de) 1999-10-18 1999-10-18 Verfahren zum Verhindern eines unbefugten Zugriffs auf einen Speicher
DE19950118 1999-10-18
DE60027248T DE60027248T2 (de) 1999-10-18 2000-10-17 Verfahren zur Verhinderung eines auf einem Speicher unberechtigten Zugriffs

Publications (2)

Publication Number Publication Date
DE60027248D1 DE60027248D1 (de) 2006-05-24
DE60027248T2 true DE60027248T2 (de) 2007-01-04

Family

ID=7926025

Family Applications (2)

Application Number Title Priority Date Filing Date
DE19950118A Expired - Fee Related DE19950118C2 (de) 1999-10-18 1999-10-18 Verfahren zum Verhindern eines unbefugten Zugriffs auf einen Speicher
DE60027248T Expired - Lifetime DE60027248T2 (de) 1999-10-18 2000-10-17 Verfahren zur Verhinderung eines auf einem Speicher unberechtigten Zugriffs

Family Applications Before (1)

Application Number Title Priority Date Filing Date
DE19950118A Expired - Fee Related DE19950118C2 (de) 1999-10-18 1999-10-18 Verfahren zum Verhindern eines unbefugten Zugriffs auf einen Speicher

Country Status (3)

Country Link
EP (1) EP1094393B1 (de)
AT (1) ATE323307T1 (de)
DE (2) DE19950118C2 (de)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20050086782A (ko) 2002-11-27 2005-08-30 코닌클리즈케 필립스 일렉트로닉스 엔.브이. 컨텐츠 처리 칩, 장치 및 방법

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0855023A (ja) * 1994-07-25 1996-02-27 Motorola Inc データ処理システムおよびその方法
DE19508724C1 (de) * 1995-03-10 1996-10-31 Siemens Ag Chipkarte mit geschütztem Betriebssystem
US5778070A (en) * 1996-06-28 1998-07-07 Intel Corporation Method and apparatus for protecting flash memory

Also Published As

Publication number Publication date
EP1094393B1 (de) 2006-04-12
EP1094393A2 (de) 2001-04-25
EP1094393A3 (de) 2001-12-19
DE19950118A1 (de) 2001-04-26
ATE323307T1 (de) 2006-04-15
DE60027248D1 (de) 2006-05-24
DE19950118C2 (de) 2002-03-07

Similar Documents

Publication Publication Date Title
DE69621690T2 (de) Vorrichtung zur Steuerung einer Mehrfachprogramm-Ausführung
DE69404674T2 (de) Speicherkarte und verfahren zum betrieb
DE69719479T2 (de) Datenverarbeitungssystemsicherheit
EP0512542B1 (de) Datenschützende Mikroprozessorschaltung für tragbare Datenträger, beispielsweise Kreditkarten
EP0951673B1 (de) Verfahren zur überwachung der vorgeschriebenen ausführung von softwareprogrammen
EP0155399A2 (de) Schutzanordnung zur Verhinderung der unerlaubten Ausführung eines Programms
DE19723332A1 (de) Verfahren zum Schutz eines Mikrorechners und geschützter Mikrorechner
EP1262856B1 (de) Programmgesteuerte Einheit
DE10105284A1 (de) Mikroprozessorschaltung für Datenträger und Verfahren zum Organisieren des Zugriffs auf in einem Speicher abgelegten Daten
EP1164456A1 (de) Software-Schutzmechanismus
DE19963208A1 (de) Verfahren zum Manipulationsnachweis einer programmierbaren Speichereinrichtung eines digitalen Steuergeräts
EP0657820B1 (de) Verfahren zum Verhindern einer unberechtigten Datenänderung bei einer Vorrichtung mit einem nichtflüchtigen Speicher
EP0276450A1 (de) Datenschutzschaltung zur Sperrung der Uebertragung von Signalen über einen Bus
DE60027248T2 (de) Verfahren zur Verhinderung eines auf einem Speicher unberechtigten Zugriffs
DE9420092U1 (de) Modul zum Schutz von Software
DE10002203B4 (de) Verfahren zum Schutz eines Mikrorechner-Systems gegen Manipulation von in einer Speicheranordnung des Mikrorechner-Systems gespeicherten Daten
DE10002204B4 (de) Verfahren zum Schutz eines Mikrorechners eines Steuergeräts gegen Manipulation eines Programmes und Vorrichtung zur Durchführung des Verfahrens
EP1563358B1 (de) Verfahren zur sicheren überprüfung eines speicherbereiches eines mikrocontrollers in einem steuergerät und steuergerät mit einem geschützten mikrocontroller
EP1293858B1 (de) Verfahren zum Schutz eines Mikrorechner-Systems gegen Manipulation seines Programms
EP0966711B1 (de) Mikrocomputer mit einer speicherverwaltungseinheit
EP2524333A1 (de) Verfahren zum bereitstellen eines sicheren zählers auf einem endgerät
EP0184023A1 (de) Verfahren und Einrichtung zum Schutz vor unberechtigtem Betrieb geschützter Programme in einem Mikrocomputer
DE4340027A1 (de) Schreibschutz-Verfahren für einen nichtflüchtigen Schreib-/Lesespeicher in einem elektronischen Steuergerät
DE10131574A1 (de) Verfahren zum Betreiben eines Mikrorechner-Systems
DE102007062915A1 (de) Verfahren zum Betreiben einer speicherprogrammierbaren Steuerung

Legal Events

Date Code Title Description
8364 No opposition during term of opposition