DE60027248T2 - Verfahren zur Verhinderung eines auf einem Speicher unberechtigten Zugriffs - Google Patents
Verfahren zur Verhinderung eines auf einem Speicher unberechtigten Zugriffs Download PDFInfo
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/78—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
- G06F21/79—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data in semiconductor storage media, e.g. directly-addressable memories
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/14—Protection against unauthorised use of memory or access to memory
- G06F12/1458—Protection against unauthorised use of memory or access to memory by checking the subject access rights
- G06F12/1466—Key-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 Schaltung10 , die eine Eingabe/Ausgabe-Schnittstelle12 , einen Prozessor14 und einen Speicher16 enthält. Die integrierte Schaltung10 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 Speicher16 ein Programmcode eingegeben werden, der die gewünschte Arbeitsweise des Prozessors14 definiert. Zur Eingabe dieses Programmcodes ist im Prozessor14 ein so genanntes Urladeprogramm enthalten, dessen Aufgabe darin besteht, jeglichen Zugriff auf den Speicher16 und das Eingeben eines Programmcodes über die Eingabe/Ausgabe-Schnittstelle12 an der gewünschten Adresse zu steuern. - Der Programmcode besteht gemäß
2 aus aufeinanderfolgenden Bytes, die nacheinander in den Speicher16 unter der Steuerung durch das Urladeprogramm eingegeben werden. Der Programmcode enthält einen Abschnitt18 , der vom Urladeprogramm an einer bestimmten Adresse im Speicher16 abgelegt wird. Dieser Abschnitt18 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 Schaltung10 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 Speicher16 gespeicherte Programmcode geändert werden. Dazu ist es erforderlich, auf den Speicher16 zuzugreifen. Zur Durchführung eines solchen Umprogrammierungsvorgangs wird erneut das Urladeprogramm aktiviert, damit dieses die Abspeicherung des neuen Programmcodes im Speicher16 steuern kann. Das Urladeprogramm gibt den Zugriff auf den Speicher16 jedoch nur dann frei, wenn ihm über die Eingabe/ Ausgabe-Schnittstelle der Programmcodeabschnitt18 zugeführt wird, der beim vorherigen Programmierungsvorgang an der vorbestimmten Adresse im Speicher16 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 Speicher16 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)
- 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. - Verfahren nach Anspruch 1, bei dem als programmspezifischer Programmcodeabschnitt (
18 ) der Abschnitt verwendet wird, der die Interruptvektoren enthält. - 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.
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)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20050086782A (ko) | 2002-11-27 | 2005-08-30 | 코닌클리즈케 필립스 일렉트로닉스 엔.브이. | 컨텐츠 처리 칩, 장치 및 방법 |
Family Cites Families (3)
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 |
-
1999
- 1999-10-18 DE DE19950118A patent/DE19950118C2/de not_active Expired - Fee Related
-
2000
- 2000-10-17 EP EP00122233A patent/EP1094393B1/de not_active Expired - Lifetime
- 2000-10-17 DE DE60027248T patent/DE60027248T2/de not_active Expired - Lifetime
- 2000-10-17 AT AT00122233T patent/ATE323307T1/de not_active IP Right Cessation
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 |