-
Dieser
Antrag macht Anspruch geltend auf das Prioritätsrecht aufgrund der US Patentanmeldung
Seriennummer 60/342,082, eingereicht am 26. Dezember 2001.
-
Die
vorliegende Erfindung bezieht sich auf das Gebiet von anwendungsspezifischen
integrierten Schaltungen [ASIC] und prozessororientiertem (on-chip) BootROM (Start-Festspeicher).
Insbesondere bezieht sich die vorliegende Erfindung auf das Gebiet,
Sicherheitsfunktionen in das prozessororientierte BootROM einzugliedern,
vorzugsweise bei Nutzung in mobilen Geräten.
-
Viele
mobile Geräte
wie Funktelefone, PDAs (persönliche
digitale Assistenten) und andere Handheld-Rechen- und Kommunikationsgeräte führen gegenwärtig zahlreiche
und komplexe Funktionen aus. Bei einem solchen mobilen Gerät kann es
gelegentlich nötig
werden, zumindest einen Teil der darin genutzten Software auf einen
bekannten vorherigen Stand zurück
zu setzen, um aktuelle oder potentielle Probleme zu vermeiden. Typischerweise
beinhaltet ein mobiles Gerät
einen Reset-Schalter oder ein anderes entsprechendes Fachleuten
bekanntes Hilfsmittel, das der Benutzer betätigen kann, um einen Rücksetzvorgang
auszulösen.
-
Es
wurde beobachtet, dass in einige bestehende ASIC Prozessoren für mobile
Geräte über ihren
seriellen Anschluss eingedrungen werden kann, nachdem ein Rücksetz-vorgang
ausgelöst
wurde. Ein externer Reset-Schalter steuert üblicherweise eine Rücksetz-Schaltung
im mobilen Gerät.
Wenn der Reset-Schalter betätigt
wurde, schließt
sich der Rücksetz-Schaltkreis
und sendet dabei ein Signal oder einen Reset-Befehl an die ASIC
zum Rücksetzen.
Wenn der Reset-Schalter frei gegeben wird und der Rücksetz-Schaltkreis sich öffnet, werden
die im internen BootROM gespeicherten Instruktionen ausgeführt, und
der BootROM weist die ASIC zur Abfrage des seriellen Anschlusses über den
Vorgang an, welcher an einen persönlichen Rechner angeschlossen
sein kann.
-
Falls
der serielle Anschluss in Betrieb ist, deutet dies in der Regel
darauf hin, dass es neuen Code zum Herunterladen gibt. Dieser neue
Code kann im Speicher auf einem persönlichen Rechner gespeichert
werden oder kann über
den persönlichen Rechner
von einer anderen Quelle übermittelt
werden, und er kann zum Beispiel eine neue Version des Codes enthalten,
der im mobilen Gerät
auszuführen ist.
Typischerweise wird der Programmcode im BootROM zu einem Downloadprozess
des neuen Codes über
den seriellen Anschluss in den internen SRAM springen. Ist der Download
abgeschlossen, wird der Programmcode im BootROM zum Beginn des herunter
geladenen neuen Codes springen und anfangen, den herunter geladenen
neuen Code auszuführen. Dieser
herunter geladene neue Code verfügt
typischerweise über
vollständigen
Zugriff, im Sinne von zulässigen
Instruktionen und Befehlen, zu allen Komponenten in dem mobilen
Gerät,
wie z.B. dem FLASH-Datenspeicher. Dies stellt ein potentielles Sicherheitsrisiko
dar, da es zulässt,
dass jedermann neuen Code über
den seriellen Anschluss liefert, der, nachdem er ausgeführt wurde,
auf im FLASH-Datenspeicher des mobilen Geräts gespeicherte Programme und
Daten zugreifen und diese hochladen kann, einschließlich vertraulicher
und geschützter
Informationen. Ein solcher Zugriff würde einen Sicherheitsverstoß darstellen.
-
EP0816970 offenbart ein
Verfahren zur Prüfung
der Validität
eines ungesichertem Mikrocodes, der bereits in einen FLASH-Datenspeicher
geschrieben wurde. Falls sich aufgrund eines Vergleichs einer Verifikationsprüfsumme und
einer Datensumme, die sich beide zumindest in Teilen aus dem Inhalt
eines ungeschützten
Speichers ergeben, herausstellt, dass der Mikrocode zulässig ist,
dann wird der Mikrocode als „vertrauenswürdig" eingestuft und die
Ausführung zugelassen.
Stimmen die Prüfsummen,
wird der Nutzer auf einen Fehler hingewiesen.
EP0816970 stellt nicht dar, wie ein
solcher Fehler von Computersystem behandelt würde, und beschreibt oder macht
keine Vorschläge
für eine
Vorrichtung zum Herunterladen des Codes als Ergebnis der Erkennung
einer solchen Fehlerzustandes.
-
US5805882 offenbart eine
Vorrichtung zur Sicherstellung, dass der Inhalt eines FLASH-Festspeichers
(flashROM) nicht korruptiert wird.
US5805882 stellt
ein Computersystem dar, in dem Updates für den FLASH-Festspeicher, welcher
zum Speichern der BIOS-Informationen benutzt wird, über einen
externen Anschluss bezogen werden, falls der im FLASH-Festspeicher
gespeicherte Inhalt eine Prüfsumme
verfehlt. Die Prüfsumme
selbst wird aus dem Inhalt des FLASH-Festspeichers bezogen, der die
BIOS-Informationen enthält.
Der FLASH-Festspeicher kann neu programmiert werden, um Änderungen
der BIOS-Informationen zuzulassen.
-
Es
ist daher wünschenswert,
eine Sicherheitsfunktion bereitzustellen, um die Wahrscheinlichkeit
des Vorkommens von Sicherheitsverstößen zu reduzieren.
-
ALLGEMEINES
-
Es
ist ein Ziel der vorliegenden Erfindung, mindestens einen der Nachteile
der vorangehenden Speicher- und Prozessoranordnungen zu mindern oder
zu vermeiden, insbesondere die, die für die Nutzung mit Handheld-
oder Mobilgeräten
vorgesehen sind.
-
Es
wir ein Startverfahren beschrieben, das von einer ASIC und einem
Speicher in mobilen Geräten
verwendet wird sowie eine Vorrichtung für die Nutzung in einem solchen
mobilen Gerät.
Eine Sicherheitsfunktion ist gemäß einer
Ausführungsform der
Erfindung vorgesehen, die die Wahrscheinlichkeit eines Sicherheitsverstoßes senkt,
vorzugsweise in Situationen, in denen ein Zurücksetzen des mobilen Geräts ausgelöst wurde.
Die Sicherheitsfunktion umfasst selektives Hochfahren für den seriellen
Anschluss basierend auf dem Ergebnis eines Vergleichs zwischen einem
in einem ASIC, z.B. in einem BootROM, gespeicherten Wert und in
einem FLASH-Speicher gespeicherten Wert.
-
Ein
vorgegebener Sicherheitswert oder Passwort wird in einem Schaltkreis
im mobilen Gerät gespeichert,
wie zum Beispiel im BootROM. Der Programmcode im BootROM ist vorzugsweise
modifiziert, so dass vor dem Abfragen des seriellen Anschlusses
für den
Vorgang eine Sicherheitsspeicherzelle innerhalb des FLASH-Speichers des mobilen Geräts gelesen
wird. Wenn der Wert in der Sicherheitsspeicherzelle dem vorgegebenen
Sicherheitswert entspricht, wird das Abfragen des seriellen Anschlusses
nicht vorgenommen. Dies reduziert die potentiellen Sicherheitsverstöße, die
in konventionellen Einstellungen entstehen, in denen der Code vom
seriellen Anschluss herunter geladen und durchgeführt werden
kann, was es jedermann möglich
macht, auf Programme und Daten zuzugreifen und [diese] in den FLASH-Speicher
zu laden, einschließlich
vertraulicher und geschützter
Informationen.
-
In
einem Aspekt der Erfindung enthält
eine vorgegebenen Speicherzelle, z.B. eine Sicherheitsspeicherzelle,
im FLASH-Speicher ein Passwort oder einen ähnlichen Sicherheitswert. Unmittelbar
nach einem Reset des Geräts
liest der Startcode, der in der ASIC einprogrammiert ist, vor dem
Abfragen des seriellen Anschlusses für den Vorgang, aus der Sicherheitsspeicherzelle
des FLASH-Speichers. Falls der abgelesene Wert dem erwarteten Passwort
entspricht, springt der Startcode direkt zum Start des FLASH-Speichers und verhindert
ein Herunterladen von Programmen in den Systemspeicher über den seriellen
Anschluss.
-
Gemäß eines
Aspekts der Erfindung ist ein Startverfahren für die Nutzung in einem mobilen
Gerät mit
einem FLASH-Speicher vorgesehen, in dem Startanweisungen und ein
Schlüsselwert
in einer Sicherheitsspeicherzelle gespeichert werden, das einen
internen Festspeicher für
das Abspeichern vom Startprogrammcode und eines vorgegebenen Sicherheitswerts
hat, und einen seriellen Anschluss hat, in dem der auf dem Festspeicher
gespeicherte Startprogrammcode folgende Schritte ausführt: Lesen
des Schlüsselwerts
aus der Sicherheitsspeicherzelle im FLASH-Speicher; Vergleichen
des Schlüsselwerts
mit dem vorgegebenen Sicherheitswert, der im internen Festspeicher
abgespeichert ist; und abhängig
vom Ergebnis des Vergleichs des Schlüsselwerts mit dem vorgegebenen
Sicherheitswert entweder das Abfragen des seriellen Anschlusses
für den Vorgang
oder das zum FLASH-Speicher Springen, um die darin gespeicherten
Startinstruktionen durchzuführen.
-
In
einer vorliegenden bevorzugten Ausführungsform wird der Start durchgeführt, falls
der Schlüsselwert
aus der Sicherheitsspeicherzelle nicht dem vorgegebenen Sicherheitswert
entspricht. Das Verfahren kann darüber hinaus den Schritt beinhalten,
dass in Reaktion auf einer Ermittlung des Vorgangs des seriellen
Anschlusses der Code in den internen SRAM des mobilen Geräts geladen
wird, sowie der Schritt, dass eine Anweisung im herunter geladenen
Code ausgeführt
wird und dass das Verfahren zu einer Startspeicherzelle im FLASH-Speicher springt,
um die darin gespeicherten Startinstruktionen auszuführen.
-
In
einem Startverfahren gemäß einer
Ausführungform
der Erfindung kann der vorgegebene Sicherheitswert in einem BootROM
im mobilen Gerät gespeichert
werden. Des Weiteren wird der Schritt des Lesens im Startverfahren
vorzugsweise in Reaktion auf einen Reset-Befehl durchgeführt.
-
Gemäß eines
anderen Aspekts der Erfindung ist eine Vorrichtung zur Nutzung in
mobilen Geräten
mit einem seriellen Anschluss vorgesehen, die umfasst: einen internen
Festspeicher zum Speichern des Startprogrammcodes und eines vorgegebenen Sicherheitswerts;
einen FLASH-Speicher zum Speichern der Startanweisungen und mit
einer Sicherheitsspeicherzelle zum Speichern eines Schlüsselwerts;
und einen Prozessor, so eingestellt, dass er mit dem internen Fest-
und dem FLASH-Speicher verbunden ist, wobei der Prozessor so eingestellt
ist, dass der im Festspeicher gespeicherte Startprogrammcode für das Ablesen
des Schlüsselwerts
aus der Sicherheitsspeicherzelle im FLASH-Speicher und für Vergleichen
des besagten Schlüsselwerts ausgeführt wird,
der in der Sicherheitsspeicherzelle gespeichert ist, mit dem vorgegebenen
Sicherheitswert und, abhängig
vom Ergebnis des Vergleichs des Schlüsselwerts mit dem vorgegebenen
Sicherheitswert, entweder Starten des seriellen Anschlusses für den Vorgang
oder zum FLASH-Speicher springt, um die darin gespeicherten Startanweisungen
auszuführen.
-
In
einer vorliegenden bevorzugten Ausführungsform ist der Festspeicher
ein Startfestspeicher (BootROM). Die Vorrichtung kann des Weiteren
eine Resetfunktion in Verbindung mit dem Prozessor zur Einleitung
eines Rücksetzvorgangs
beinhalten. Vorzugsweise vergleicht der Prozessor die Inhalte der Sicherheitsspeicherzelle
und den vorgegebenen Sicherheitswert in Reaktion auf eine Einleitung
eines Rücksetzvorgangs.
-
Bezüglich der
spezifischen Anwendungen der Vorrichtung kann sowohl der interne
Festspeicher als auch der Prozessor auf der ASIC gespeichert werden.
Der Prozessor kann eine Mikrokontrolleinheit beinhalten, die mit
dem seriellen Anschluss verbunden ist, und er kann auch einen digitalen
Signalprozessor enthalten, der mit dem FLASH-Speicher verbunden
ist.
-
Andere
Aspekte und Merkmale der vorliegenden Erfindung werden dem Durchschnittsfachmann
bei Durchsicht der folgenden Beschreibung der spezifischen Ausführungsformen
der Erfindung in Verbindung mit den beiliegenden Abbildungen verständlich werden.
-
KURZE BESCHREIBUNG DER ZEICHNUNGEN
-
Ausführungsformen
der vorliegenden Erfindung werden nun in beispielhafter Form und
mit Bezug auf die beiliegenden Abbildungen beschrieben:
-
1 ist
ein Blockdiagramm einer typischen ASIC und damit operativ verbundener
externer Komponenten;
-
2 ist
ein Blockdiagramm einer ASIC und damit operativ verbundener externer
Komponenten mit eingebauter Sicherheitsfunktion, gemäß einer Ausführungsform
der vorliegenden Erfindung;
-
3 ist
ein Ablaufdiagramm eines Startverfahrens, welches von einer typischen
ASIC durchgeführt
wird;
-
4 ist
ein Ablaufdiagramm eines Startverfahrens, welches fon einer typischen
ASIC durchgeführt
wird, gemäß einer
Ausführungsform
der vorliegenden Erfindung, mit einer Sicherheitsfunktion.
-
BESCHREIBUNG BEVORZUGTER AUSFÜHRUNGSFORMEN
-
Allgemein
bietet die vorliegende Erfindung ein Verfahren und eine Vorrichtung
für die
Nutzung in mobilen Geräten.
Eine Sicherheitsfunktion ist vorgesehen, die die Wahrscheinlichkeit
eines Sicherheitsverstoßes
reduziert, vorzugsweise in Situationen, in denen die Resetfunktion
des mobilen Geräts
ausgelöst
wurde. Ein vorgegebener Sicherheitswert oder Passwort wird gespeichert,
zum Beispiel im BootROM. Der Programmcode im BootROM ist vorzugsweise
so modifiziert, dass eine Sicherheitsspeicherzelle im FLASH-Speicher
gelesen wird, vor einem Abfragen des seriellen Anschlusses für den Vorgang. Abhängig vom
Ergebnis des Vergleichs zwischen dem gespeicherten Passwort und
dem Inhalt der Sicherheitsspeicherzelle oder dem Schlüssel wird
das Abfragen des seriellen Anschlusses dann selektiv vorgenommen.
In einer vorliegenden bevorzugten Ausführungsform wird, wenn der Wert
in der Sicherheitszelle dem vorgegebenen Sicherheitswert entspricht,
die Abfrage des seriellen Anschlusses nicht durchgeführt.
-
1 ist
ein Blockdiagramm einer typischen ASIC und damit operativ verbundener
externer Komponenten. ASIC 2 umfasst einen digitalen Signalprozessor
(DSP) 4 und eine Mikrokontrolleinheit (MCU) 6.
Es ist in Fachkreisen allgemein bekannt, dass der DSP 4 und
die MCU 6 im Wesentlichen zwei Prozessoren sind, die sich
im selben integrierten Schaltkreis befinden und eine Vielzahl an
Ressourcen teilen.
-
Eine
Rücksetz-Schaltung 8 ist
mit der MCU 6 und dem DSP 4 verbunden. Ein externer
Reset-Schalter 10 steuert den Rücksetz-Schaltkreis 8. Wenn
der Reset-Schalter 10 betätigt wird,
schließt sich
der Rücksetz-Schaltkreis 8 und
sendet ein Signal oder Reset-Befehl an die MCU 6 und den
DSP 4 zum Zurücksetzen.
Wenn der Reset-Schalter 10 frei gegeben
wird und der Rücksetz-Schaltkreis 8 sich öffnet, führt die
MCU 6 Instruktionen aus, die im internen BootROM 14 gespeichert
sind. Der Rücksetz-Schaltkreis 8 und
der Reset-Schalter 10 können gemeinsam
als Rücksetzmittel
bezeichnet werden.
-
Die
MCU 6 kommuniziert auch mit dem seriellen Anschluss 12.
Der serielle Anschluss 12 kann an einen persönlichen
Rechner (PC) 11 angeschlossen werden, was dem PC ermöglicht,
mit der ASIC 2 zu kommunizieren. Obwohl die Erfindung hier
so beschrieben wird, als ob sie in Verbindung mit einem PC stünde, ist
die Erfindung nicht auf eine derartige Einstellung beschränkt. Jede
Einstellung ist möglich, in
der benötigte
Informationen über
den seriellen Anschluss an einen Prozessor übermittelt werden können, d.h.
zur MCU. Wenn die MCU 6 in Reaktion auf einen Reset-Befehl
Instruktionen ausführt,
die im internen BootROM 14 gespeichert sind, wird die MCU 6 durch
den BootROM 14 zu einem Start des seriellen Anschlusses
für den
Vorgang angewiesen.
-
Der
BootROM 14 befindet sich ebenfalls auf der ASIC 2.
Der BootROM 14 ist einseitig an die MCU 6 gekoppelt.
Der DSP 4 und die MCU 6 sind beide an eine externe
Speicherschnittstelle 16 gekoppelt, um Zugriff auf einen
externen SRAM 17 und einen FLASH-Speicher 18 oder
sonstigen internen Systemspeicher zu erhalten.
-
2 zeigt
dieselbe ASIC und begleitende externe Komponenten wie in 1,
bezieht aber eine Sicherheitsfunktion gemäß einer Ausführungsart
der vorliegenden Erfindung mit ein.
-
Gemäß einer
Ausführungform
der Erfindung ist eine Sicherheitsfunktion vorgesehen welche die Wahrscheinlichkeit
eines Sicherheitsverstoß reduziert,
vorzugsweise in einer Situation, in der die Resetfunktion des mobilen
Geräts
ausgelöst
worden ist. Ein vorgegebener Sicherheitswert oder ein Passwort wird
gespeichert, zum Beispiel im BootROM 14. Der Programmcode
im BootROM wird vorzugsweise so modifiziert, dass eine Sicherheitsspeicherzelle
im FLASH-Speicher des mobilen Geräts vor einer Abfrage des seriellen
Anschlusses für
den Vorgang gelesen wird.
-
Abhängig vom
Ergebnis des Vergleichs zwischen dem vorgegebenen Sicherheitswert
oder gespeichertem Passwort und dem Inhalt der Sicherheitsspeicherzelle
wird die Abfrage des seriellen Anschlusses dann selektiv vorgenommen.
In der vorliegenden bevorzugten Ausführungsform wird, wenn der Wert
der Sicherheitsspeicherzelle dem vorgegebenen Sicherheitswert entspricht,
die Abfrage des seriellen Anschlusses nicht durchgeführt, wodurch das
potentielle Sicherheitsrisiko in Verbindung mit einer solchen Abfrage
vermieden wird.
-
In
einer beispielhaften Ausführungsform
wird vorzugsweise ein zusätzlicher
Code (Codeleseschlüssel) 15 zum
im BootROM 14 gespeicherten Programmcode hinzugefügt, welcher
davon ausgehend, vorzugsweise unmittelbar nach einem Reset, ausgeführt wird
Der zusätzliche
Code 15 wird genutzt, um vorzugsweise einen Wert aus einer
Sicherheitsspeicherzelle 19 oder einer Schlüsselspeicherzelle
im FLASH-Speicher 18 zu
lesen. Die Schlüsselspeicherzelle 19 ist
ein Beispiel für
eine Sicherheitsspeicherzelle im FLASH-Speicher 18, in
der ein voraussichtliches Passwort gespeichert werden kann. Der
Begriff „Schlüssel" kann verwendet werden,
um den Wert wiederzugeben, der in der Sicherheitsspeicherzelle gespeichert
ist, der mit dem im BootROM gespeicherten vorgegebenen Sicherheitswert
verglichen wird. Die Sicherheitsfunktion kann als selektive Abfrage
des seriellen Anschlusses abhängig
vom Ergebnis eines Vergleichs des Schlüssels 19 und des voraussichtlichen
Passworts interpretiert werden. Eine Abfrage des seriellen Anschlusses
wird vorzugsweise nicht durchgeführt,
wenn der FLASH-Speicher 18 mit dem Schlüssel 19 programmiert
wurde, so dass der Wert dem im BootROM 14 gespeicherten
vorgegebenen Sicherheitswert oder dem Passwort entspricht, und ein
Vergleich vorgenommen wurde, um die Übereinstimmung zu überprüfen.
-
3 zeigt
ein Ablaufdiagramm eines Startverfahren einer typischen ASIC 2 nach
Auslösung
einer Rücksetzung.
Nach einer Auslösung
von einer Rücksetzung
in Schritt 20 löst
der im BootROM 14 gespeicherte Programmcode eine Abfrage
des seriellen Anschlusses 12 für den Vorgang in Schritt 22 aus.
Ist der serielle Anschluss mit einem PC 11 verbunden,
dann kann der PC 11 mit der ASIC 2 kommunizieren.
In Schritt 24 wird ermittelt, ob beim seriellen Anschluss 12 ein
Vorgang abläuft.
Wenn es einen seriellen Anschlussvorgang gibt, springt der Programmcode
im BootROM 14 zu einem routinemäßgen Download des Codes und
lädt diesen
Programmcode, wie in Schritt 26 dargestellt, über den seriellen
Anschluss in den internen SRAM 13. Nach Abschluss des Downloads
springt der Programmcode im BootROM 14 zum Beginn des Downloadcodes
und beginnt, den herunter geladenen Code auszuführen. Ein potentielles Sicherheitsrisiko
in einer solchen Konfiguration besteht darin, dass ein Downloadprogramm
Inhalte aus dem FLASH-Speicher, einschließlich vertraulicher und/oder
geschützter
Informationen, hochladen oder entnehmen könnte.
-
Falls
sich in Schritt 24 herausstellt, dass es keinen seriellen
Anschlussvorgang gibt, lässt
der Programmcode im BootROM 14 eine Timeout-Zeitspanne verstreichen,
wie in Schritt 28 dargestellt. Ein aktueller Timeoutwert
wird festgelegt, zum Beispiel indem ein Zählwert in einem Register in
der MCU 6 dekrementiert wird. Nach Ende des Timeouts springt der
Programmcode im BootROM 14 in Schritt 30 direkt
zu einer Startspeicherzelle im FLASH-Speicher 18, um den
Programmcode, beginnend in der Startspeicherzelle, auszuführen. Ist
der Timeout nicht abgelaufen, geht das Verfahren zurück zu Schritt 22 und
wartet auf den Vorgang des seriellen Anschlusses oder das Ende des
Timeouts. Ein angemessener Timeout kann zum Beispiel 40 msec sein.
-
4 zeigt
ein Ablaufdiagramm eines Startverfahrens gemäß einer Ausführungform
der vorliegenden Erfindung, die als Erweiterung zum Verfahren in 3 eine
Sicherheitsfunktion aufweist. Eine ASIC 2 benutzt vorzugsweise
dieses Verfahren nach Auslösen
eines Resets. Der BootROM-Code 14 wird vorzugsweise so
modifiziert, dass eine vorgegebene Speicherzelle oder Sicherheitsspeicherzelle
im FLASH-Speicher 18 vor einer Abfrage des seriellen Anschlusses 12 für den Vorgang
gelesen wird.
-
Bezug
nehmend auf 4 liest nach einer Reset-Auslösung in
Schritt 32 der BootROM-Code 14 vorzugsweise den
Inhalt der Sicherheitsspeicherzelle im FLASH-Speicher oder den Schlüssel 19 in Schritt 34.
In Schritt 36 wird dann ermittelt, ob der Schlüssel oder
der Inhalt der Sicherheitsspeichezelle im FLASH-Speicher dem im
BootROM gespeicherten Passwort oder dem vorgegebenen Sicherheitswert
entspricht. Wird ermittelt, dass eine Übereinstimmung vorliegt, dann
sollte der BootROM-Code vorzugsweise in Schritt 38 so programmiert
sein, dass er zum FLASH 18 springt, um die in einer Startspeicherzelle
des FLASH-Speichers gespeicherten Instruktionen auszuführen. Das
Springen zu der Startspeicherzelle im FLASH-Speicher 18 verhindert, dass
ein Programm über
den seriellen Anschluss 12 in den internen SRAM 13 geladen
wird.
-
Falls
in Schritt 36 ermittelt wird, dass der Schlüsselwert
nicht dem gespeicherten Passwort entspricht, fragt der BootROM-Code 14 in
Schritt 40 den seriellen Anschluss 12 für den Vorgang
ab. In Schritt 42 wird dann ermittelt, ob es beim seriellen Anschluss 12 einen
Vorgang gibt. Wird in Schritt 42 ermittelt, dass es beim
seriellen Anschluss 12 einen Vorgang gibt, fährt das
Verfahren mit Schritt 44 fort. Eine solche positive Ermittlung
kann zum Beispiel gemacht werden, wenn ein PC mit dem seriellen
Anschluss verbunden ist. In Schritt 44 springt der BootROM-Code 14 zu
einem routinemäßgen Download des
Codes in den internen SRAM 13 über den seriellen Anschluss 12.
Erfolgt dieser Download, springt der BootROM-Code 14 zum
Beginn des geladenen Codes.
-
Falls
sich in Schritt 42 ergibt, dass der serielle Anschluss
ohne Vorgang ist, lässt
der Programmcode im BootROM 14 eine Timeout-Zeitspanne
verstreichen, wie in Schritt 46 dargestellt. Ein aktueller Timeoutwert
wird festgelegt, zum Beispiel indem ein Zählwert in einem Register in
der MCU 6 dekrementiert wird. Nach Ende des Timeouts springt
der Programmcode im BootROM 14 in Schritt 38 direkt
zu einer Startspeicherzelle im FLASH-Speicher 18 und die
Ausführung
des Programmcodes wird fortgesetzt. Ist der Timeout nicht abgelaufen,
geht das Verfahren zurück
zu Schritt 40 und wartet darauf, dass der serielle Anschluss
den Vorgang einleitet oder dass der Timout abläuft.
-
Obwohl
die Option einer Abfrage des seriellen Anschlusses für den Vorgang
in dem Ablaufdiagramm in 4 noch vorgesehen ist, wird
dieser Verfahrensweg nur dann eingeschlagen, wenn der Sicherheitswerts
dem gespeicherten Passwort nicht entspricht. Das Programmieren eines
vorgegebenen Sicherheitswerts und eines entsprechenden Wertes in
einer Sicherheitsspeicherzelle im FLASH-Speicher wird vorzugsweise
im Laufe der Entwicklung oder Produktion und vor dem kommerziellen
Vertrieb des mobilen Geräts
vorgenommen. Es wäre
durchaus möglich,
dass Böswillige
versuchen könnten,
den Code nach Beginn des kommerziellen Vertriebs zu modifizieren, so
dass der Schlüssel
nicht als übereinstimmend
mit dem Passwort erkannt wird, was eine Abfrage des seriellen Anschlusses
auslösen
würde. Ein
solcher Sicherheitsverstoß dürfte jedoch
außerhalb
der Entwicklungsphase, d.h. nachdem der Schlüssellesecode 15 zum
BootROM-Code 14 hinzugefügt wurde, nur schwer durchzuführen sein.
Darüber
hinaus würde
ein Versuch eines solchen Verstoßes, um dieses potentielle
Sicherheitsrisiko auszunutzen, derart eingreifende Maßnahmen
erfordern, die dem Laien gewöhnlich
nicht bekannt sind.
-
Obwohl
Ausdrücke
wie Sicherheitsspeicherzelle und Speicherzelle hier im Singular
benutzt werden, geschieht dies aus Gründen der Zweckmäßigkeit.
Fachleuten ist ersichtlich, dass zur Speicherung von einem oder
mehreren vorgegebenen Sicherheitswerten eine beliebige Anzahl von
Speicherzellen verwendet werden kann. Die benötigte Anzahl von Speicherzellen
kann von der Komplexität
des Sicherheitswerts und dessen Länge abhängen, was die Auswahl des vorgegebenen
Sicherheitswerts beeinflussen kann. Bezüglich der physischen Umsetzung können solche
Speicherzellen entweder zusammenhängende oder nicht-zusammenhängende Speicherzellen
sein, die auf eine dem Fachmann bekannte Weise verknüpft sind,
so dass sie zusammen zum Beispiel eine Sicherheitsspeicherzelle
darstellen.
-
In
einer alternativen Ausführungsform
wird eine Abfrage des seriellen Anschlusses in dem Fall durchgeführt, in
dem der Wert in der Sicherheitsspeicherzelle dem vorgegebenen Sicherheitswert
entspricht. Alternativ kann jedes andere geeignete Vergleichsschema
oder vergleichbare Sicherheitsfunktion eingesetzt werden, um die
selektive Abfrage des seriellen Anschlusses in einem mobilen Gerät zu steuern.
-
Die
oben beschriebenen Ausführungsformen der
vorliegenden Erfindung sind nur als Beispiele gedacht. Änderungen,
Modifizierungen und Variationen können von Fachleuten an den
jeweiligen Ausführungsformen
vorgenommen werden, ohne vom Umfang der Erfindung abzuweichen, welcher
einzig durch die beigefügten
Patentansprüche
definiert wird.
-
1 BEKANNTER STAND DER TECHNIK
- 10
- Reset-Schalter
- 11
- PC
- 8
- Reset-Schaltung
- 12
- serieller
Anschluss
- 14
- BootROM
- 6
- MCU
(Mikrokontrolleinheit)
- 17
- externer
SRAM
- 4
- DPS
(digitaler Signalprozessor)
- 16
- externe
Speicherschnittstelle
- 2
- interner
SRAM
- 18
- externer
Speicherchip (FLASH)
-
2
- 10
- Reset-Schalter
- 11
- PC
- 8
- Reset-Schaltung
- 12
- serieller
Anschluss
- 14
- BootROM
- 15
- Lesecode
- 6
- MCU
(Mikrokontrolleinheit)
- 17
- externer
SRAM
- 4
- DPS
(digitaler Signalprozessor)
- 16
- externe
Speicherschnittstelle
- 2
- interner
SRAM
- 18
- externer
Speicherchip (FLASH)
-
3 STAND DER TECHNIK
- 20
- Reset
- 22
- Warten
auf den Vorgang des seriellen Anschlusses
- 24
- Vorgang
des seriellen Anschlusses
- Nein
-
- 28
- Timeout-Zeitspanne
(40 ms)?
- Nein
-
- ...
-
- 22
- Warten
auf den Vorgang des seriellen Anschlusses
- 24
- Vorgang
des seriellen Anschlusses
- Ja
-
- 26
- Herunterladen
des Programms
- ...
-
- 22
- Warten
auf den Vorgang des seriellen Anschlusses
- 24
- Vorgang
des seriellen Anschlusses
- Nein
-
- 28
- Timeout-Zeitspanne
(40 ms)?
- Ja
-
- 30
- Springen
zum FLASH [Datenspeicher]
-
4
- 32
- Reset
- 34
- Lesen
des Schlüssels
vom FLASH
- 36
- Schlüssel vorhanden?
- Ja
-
- 38
- Springen
zum Flash [Datenspeicher]
- Nein
-
- 40
- Warten
auf Vorgang des seriellen Anschlusses
- 42
- Vorgang
des seriellen Anschlusses
- Ja
-
- 44
- Herunterladen
des Programms
- Nein
-
- 46
- Timeout
Zeitspanne (40 ms)?
- Ja
-
- 38
- Springen
zum FLASH
- Nein
-
- 40
- Warten
auf den Vorgang des seriellen Anschlusses