-
Hintergrund der Erfindung
-
1. Gebiet der Erfindung
-
Diese
Erfindung betrifft eine elektronische Vorrichtung, die Sicherheitsfunktionen
hat, um die fehlerhafte Erfassung des Verhaltens eines internen Schaltkreises
in der elektronischen Vorrichtung zu vermeiden, und ein Verfahren
zur Debuggingautorisierung der elektronischen Vorrichtung.
-
Es
gibt eine Nachfrage nach hoch sicherer Ausrüstung auf allen Arten von Gebieten
wie elektronischen kommerziellen Transaktionen. Aus diesem Grund
wurden Verfahren erdacht, um die Umkehranalyse (Reverse Engineering)
der Vorrichtungen durch alle Arten von Verfahren zu vermeiden. Trotz dieser
Anstrengungen gab es ohne Ende Fälle
der Herstellung nachgeahmter ROMs und dergleichen und der unrechtmäßigen Verwendung
von Ausrüstung
in Anwendungen, die von den Entwicklern nicht beabsichtigt waren.
Aus diesem Grund sind Systeme nachgefragt, in denen die Operationen
der Vorrichtungen selbst für
die Umkehranalyse durch eine dritte Partei undurchlässig sind.
-
2. Beschreibung des diesbezüglichen
Standes der Technik
-
Die
CPU, die in eine IC geladen ist (insbesondere eine LSI), die einen
Teil des internen Schaltkreises einer elektronischen Vorrichtung
konfiguriert, hat Debuggingfunktionen (die unten manchmal eine Debuggingsteuerungseinheit
oder DCU genannt werden). Wenn eine Vorrichtung, die eine LSI verwendet,
entwickelt wird, erfassen die Debuggingfunktionen das Verhalten
(Inhalt des Programmzählers
und der Register und dergleichen) des internen Schaltkreises (andere
Schaltungen als Speicher und dergleichen), der die LSI aufweist, überwachen,
wie die Verarbeitung durch sie durchgeführt wird, überprüfen Programme und führen Debuggen
durch. Nach der Auslieferung, außerdem, wenn eine Fehlfunktion
auftritt oder die Vorrichtung Diagnosetests unterzogen wird, werden
die Debuggingfunktionen ähnlich
verwendet. Gewöhnlich
sind keine Sicherheitsfunktionen gegen solche Debuggingfunktionen vorgesehen.
-
Die
US 5,978,937 offenbart einen
Mikroprozessor, der einen Prozessorkern und ein Debuggingmodul hat.
Der Prozessorkern führt
ein Nutzerprogramm und das Überwachungsprogramm
durch, um ein Nutzerzielsystem zu debuggen. Das Debuggingmodul dient
als eine Schnittstelle mit dem Debuggingwerkzeug, um den Prozessorkern
zu veranlassen, das Überwachungsprogramm
durchzuführen, das
in dem Debuggingwerkzeug gespeichert ist. Das Debuggingmodul führt eine
Unterbrechungs- oder Ausnahmeaufforderung aus, um den Prozessorkern von
dem Nutzerprogramm zu dem Überwachungsprogramm
umzuschalten.
-
WO
01/23980 A1 offenbart ein System mit Client und Server, das eine
Clientplattform hat, auf deren zuverlässige Datenausgabe dergestalt
vertraut werden kann, daß die
Daten selbst nicht kopiert oder verändert werden können.
-
US 5,872,917 offenbart ein
Verfahren zum Authentifizieren einer oder beider Parteien zum Beispiel
eines Nutzers oder eines Zentralrechners. Sowohl die erste Partei
als auch die zweite Partei kennen das gleiche Paßwort. Die erste Partei sendet eine
Aufforderung an die zweite Partei. Die zweite Partei erzeugt eine
Antwort, die unter anderen auf einer ersten Funktion des Paßwortes
beruht, und sendet diese an die erste Partei. Ein Verfahren der
bidirektionalen Authentifizierung kann erreicht werden, wenn die
erste Partei an die zweite Partei eine Antwort, die eine unterschiedliche
Funktion des Paßwortes
verwendet, zurücksenden
muß.
-
Ein
Problem besteht darin, daß eine
dritte Partei einfach eine genaue Umkehranalyse des Verhaltens der
internen Schaltungen (insbesondere LSIs) unter Verwendung der Debuggingfunktionen durchführen kann,
so daß die
Vorrichtungen im Sicherheitssinn schutzlos sind. Für eine elektronische Vorrichtung
wie ein Kassenplatzregister (POS), das eine CPU verwendet, die Debuggingfunktionen
hat, indem sie das POS-Register
(elektronische Vorrichtung) mit einem Personalcomputer und dergleichen (Debugger)
verbindet, können
selbst Daten wie Paßwörter oder
Verschlüsselungsschlüssel oder
dergleichen einfach gesucht und gefunden werden.
-
Zusammenfassung der Erfindung
-
Dementsprechend
ist es Gegenstand der vorliegenden Erfindung, eine elektronische
Vorrichtung und ein Verfahren zur Debuggingautorisierung der elektronischen
Vorrichtung zu schaffen, um die unrechtmäßige Umkehranalyse durch eine
dritte Partei durch die Schaffung von Sicherheitsfunktionen gegen
die Debuggingfunktionen zu vermeiden.
-
Eine
elektronische Vorrichtung wird geschaffen, die die unrechtmäßige Umkehranalyse
durch eine dritte Partei vermeiden kann. In der elektronischen Vorrichtung
sind Autorisierungsfunktionen vorgesehen, um zu beurteilen, ob die
Verwen dung der Debuggingfunktionen ermöglicht werden soll oder nicht.
Die Autorisierungsfunktionen senden auf Grundlage einer Debuggingaufforderung,
die die Bestimmung eines vorgeschriebenen Adreßbereichs in dem internen Schaltkreis
der elektronischen Vorrichtung enthält, Befehlsdaten zu einer externen
Einrichtung, die mit der elektronischen Vorrichtung verbunden ist,
eine erste Autorisierung wird auf Grundlage der Befehlsdaten und
der Antwortdaten auf die Befehlsdaten, die von der externen Einrichtung
empfangen werden, durchgeführt,
eine zweite Autorisierung wird auf Grundlage des Nutzercodes, der
von der externen Einrichtung nach den Antwortdaten empfangen wird,
durchgeführt,
und die Verwendung der Debuggingfunktionen wird auf Grundlage der
ersten Autorisierung und der zweiten Autorisierung ermöglicht.
-
Kurze Beschreibung
der Zeichnungen
-
1 ist
ein Diagramm einer beispielhaften Systemanordnung gemäß einem
Ausführungsaspekt der
vorliegenden Erfindung zum Debuggen einer elektronischen Vorrichtung;
-
2 ist
ein Flußdiagramm
der Verarbeitung durch die Funktion zur Debuggingautorisierung gemäß einem
Ausführungsaspekt
der vorliegenden Erfindung;
-
3 ist
ein Flußdiagramm
der Verarbeitung durch die Funktion zur Debuggingautorisierung gemäß einem
Ausführungsaspekt
der vorliegenden Erfindung;
-
4 ist
ein Diagramm einer beispielhaften Systemanordnung gemäß einem
Ausführungsaspekt der
vorliegenden Erfindung, die auch eine Signaturerstellungseinrichtung
umfaßt;
-
5 ist
ein Diagramm zum Beschreiben von Anwendungsbeispielen der LSI 2;
-
6 ist
ein Anordnungsdiagramm des peripheren Schaltkreises der LSI 2;
und
-
7 ist
ein Diagramm zum Beschreiben einer elektronischen Vorrichtung.
-
Beschreibung der bevorzugten
Ausführungsformen
-
Ausführungsaspekte
der vorliegenden Erfindung werden unten in Verbindung mit den Zeichnungen
beschrieben.
-
1 ist
ein Diagramm einer beispielhaften Systemanordnung gemäß einem
Ausführungsaspekt der
vorliegenden Erfindung zum Debuggen einer elektronischen Vorrichtung.
Während
des Debuggens einer elektronischen Vorrichtung (Ziel), in der eine
IC (LSI z.B.) 2 angebracht ist, werden eine elektronische
Vorrichtung 4 und ein ICE (Echtzeit-Testadapter) 1 über eine
Autorisierungseinrichtung (externe Einrichtung) 3, die
für die
vorliegende Erfindung kennzeichnend ist, verbunden. Die elektronische Vorrichtung 4 umfaßt interne
Schaltungen sowie die LSI 2, die einen CPU-Kern 2-2 hat,
der Debuggingfunktionen (DCU (Debuggingsteuerungseinheit)), einen
RAM 21, einen ROM 22 und andere periphere Schaltkreise
hat. In den ROM 22 wird Firmware (ein Programm zur Autorisierungsverarbeitung)
geladen, um die Sicherheitsfunktionen (Debuggingautorisierungsfunktionen)
zu bewirken, die für
die vorliegende Erfindung kennzeichnend sind. Die peripheren Schaltungen
unterscheiden sich gemäß der Anwendung
der elektronischen Vorrichtung 4, aber ein Beispiel ist
eine elektronische Geldbezahlungsschaltung. Die elektronische Vorrichtung
umfaßt
auch Eingabemittel und Anzeigemittel (nicht gezeigt) zum Bestimmen
von Adressbereichen in dem internen Schaltkreis, die debuggt werden
sollen.
-
Die
Autorisierungseinrichtung 3 ist zwischen dem ICE 1 und
der elektronischen Vorrichtung 4 eingesteckt, und führt die
Autorisierungsverarbeitung auf Grundlage der Kommunikation mit der
Firmware in der LSI 2 durch, wie im folgenden beschrieben wird.
-
Der
ICE 1 stellt auch über
eine Schnittstelle 6 eine Verbindung zu einem Mehrzweckpersonalcomputer
(PC) 5 her, der der Debugger ist. Der Debugger kann, wie
im folgenden beschrieben werden wird, nur die Debuggingfunktionen
der LSI 2 in der elektronischen Vorrichtung verwenden,
wenn die Autorisierungsverarbeitung zwischen der elektronischen
Vorrichtung 4 und der Autorisierungseinrichtung 3 richtig
durchgeführt
wurde. Das heißt,
um die Debuggingfunktionen der LSI 2 zu ermöglichen,
ist es notwendig, die Autorisierungsverarbeitung zwischen der Autorisierungseinrichtung 3 und
der Firmware in der elektronischen Vorrichtung 4 durchführen zu
lassen. Wenn die Autorisierungsverarbeitung nicht richtig durchgeführt wird,
werden die Debuggingfunktionen der LSI 2 nicht funktionieren,
weshalb es möglich ist,
solche unrechtmäßige Handlungen
wie das Reverse Engineering des internen Verhaltens einer LSI durch
eine dritte Partei beispielsweise nach der Auslieferung einer elektronischen
Vorrichtung an einen Kunden zu vermeiden, so daß erhöhte Sicherheit beibehalten
werden kann.
-
Die
Verarbeitung der Debuggingautorisierungsfunktion gemäß einem
Ausführungsaspekt
der vorliegenden Erfindung wird nun beschrieben.
-
In 2 und 3 sind
die Flußdiagramme der
Verarbeitung durch die Debuggingautorisierungsfunktion gemäß einem
Aus führungsaspekt
der vorliegenden Erfindung gegeben. Bei der Verarbeitung, die in 2 als
Diagramm dargestellt ist, wird eine Debuggingaufforderung mit einer
Eingabeoperation oder dergleichen von außen veranlaßt, in der LSI 2 ausgegeben
zu werden (S100), erst nachdem die elektronische Vorrichtung 4 und
die Autorisierungseinrichtung 3 eingeschaltet werden und
gestartet werden. Zu diesem Zeitpunkt wird auch der Adreßbereich,
der debuggt werden sollen, zusammen mit der Debuggingaufforderung
bestimmt. Wenn kein Adreßbereich
bestimmt ist, wird angenommen, daß alle Adressen bestimmt sind.
-
Wenn
eine Debuggingaufforderung ausgegeben wird, werden daraufhin Befehlsdaten
erzeugt (S102), und die Befehlsdaten werden zu der Autorisierungseinrichtung 3 (S104)
gesendet. Die Befehlsdaten werden beispielsweise auf Grundlage zufälliger Zahlen
erzeugt und werden unterschiedliche Daten für jede Debuggingaufforderung.
Die Befehlsdaten werden unter Verwendung eines vorgeschriebenen
Verschlüsselungsschlüssels in
der LSI 2 verschlüsselt,
wodurch sie verschlüsselte
Daten werden (S106).
-
Zwischenzeitlich
bewirkt die Autorisierungseinrichtung 3 auf den Empfang
der Befehlsdaten von der LSI 2 hin (S200) die Verschlüsselung
unter Verwendung eines vorgeschriebenen Verschlüsselungsschlüssels (S202)
und gibt diese verschlüsselten
Daten als Antwortdaten an die LSI 2 (S204) zurück.
-
Auf
den Empfang der Antwortdaten von der Autorisierungseinrichtung 3 hin
(S108) vergleicht die LSI 2 in einer ersten Autorisierungsbestimmung
die empfangenen Antwortdaten mit den verschlüsselten Daten (verschlüsselte Befehlsdaten),
die wie oben bemerkt im Schritt S102 erzeugt wurden (S110).
-
Wenn
diese übereinstimmen,
wird die erste Autorisierungsbestimmung normalerweise beendet und
geht als nächstes
zu der Verarbeitung der zweiten Autorisierungsbestimmung über. Wenn
diese nicht übereinstimmen,
tritt ein Fehler auf (S126 in 3) und die
Verwendung der Debuggingfunktionen (DCU) ist nicht erlaubt.
-
Eine
Autorisierungsdiensteinrichtung 3 wird den gleichen Verschlüsselungsschlüssel wie
den Verschlüsselungsschlüssel der
elektronischen Vorrichtung 4 haben, und, wenn die Autorisierungseinrichtung 3 eine
Diensteinrichtung ist, werden die Befehlsdaten, die durch die elektronische
Vorrichtung 4 verschlüsselt
sind, und die Befehlsdaten (Antwortdaten), die durch die Autorisierungseinrichtung 3 verschlüsselt sind, übereinstimmen.
-
Nach
dem Empfang der Antwortdaten in der LSI 2 verschlüsselt die
Autorisierungseinrichtung 3 einen Nutzercode, der in der
Autorisierungseinrichtung 3 gespeichert ist (S206), und
sendet den verschlüsselten
Nutzercode nach einem vorgeschriebenen Zeitablauf zu der LSI 2 (S208).
Der Nutzercode, der in der Autorisierungseinrichtung zuvor registriert wird,
enthält
Identifizierungsinformation, die für einen bestimmten Nutzer eigenartig
ist, und ein Erlaubnisniveau, das einem Adreßbereich entspricht, der in dem
LSI 2 des Nutzers debuggt werden kann.
-
Wenn
ein verschlüsselter
Nutzercode von der Autorisierungseinrichtung 3 empfangen
wird (S112), wird zur Verarbeitung, die in 2 als Diagramm
dargestellt ist, übergegangen,
und als nächstes
als die zweite Autorisierungsbestimmung eine Bestimmung durchgeführt, ob
der Zeitablauf des Empfangs der vorgeschriebene Zeitablauf ist (S114). Der vorgeschriebene
Zeitablauf wird als nächstes beispielsweise
durch eine vorgeschriebene Zeit bestimmt (wie beispielsweise fünf Taktsignale),
die nach dem Zeitablauf des Empfangs der Antwortdaten in Schritt
S108 verstreichen.
-
Wenn
der Empfang zu dem vorgeschriebenen Zeitablauf durchgeführt wurde,
wird die zweite Autorisierungsbestimmung normalerweise beendet, und
es wird als nächstes
zur Verarbeitung der dritten Autorisierungsbestimmung übergegangen.
Wenn dies nicht der Fall ist, tritt ein Fehler auf (S126), und die
Verwendung der Debuggingfunktionen (DCU) ist nicht erlaubt. Nach
dem Senden der Antwortdaten sendet die Autorisierungsdiensteinrichtung 3 verschlüsselte Benutzerdaten
mit dem vorgeschriebenen Zeitablauf.
-
Nach
der Verarbeitung der zweiten Autorisierungsbestimmung wird der verschlüsselte Nutzercode,
der im Schritt S112 empfangen wurde, entschlüsselt (S116), und werden auf
Grundlage des erhaltenen Nutzercodes die folgende Verarbeitung der dritten
Autorisierungsbestimmung, und danach die Verarbeitung der vierten
Autorisierungsbestimmung und die Verarbeitung der fünften Autorisierungsbestimmung
ausgeführt.
-
Für die Verarbeitung
der dritten Autorisierungsbestimmung werden ein vorgeschriebenes
Datenteil der Befehlsdaten (verschlüsselten Daten), die im Schritt
S106 verschlüsselt
wurden, und ein vorgeschriebenes Datenteil des Nutzercodes, der
im Schritt S116 entschlüsselt
wurde, verglichen (S118). Der Nutzercode hat ein Datenteil, welches
das gleiche wie das vorgeschriebene Datenteil der Daten ist, die
durch den Verschlüsselungsschlüssel, der
wie vorher beschrieben, verwendet wurde, verschlüsselt wurden. Anders gesagt
verschlüsselt
der Verschlüsselungsschlüssel Befehlsdaten
so, daß sie
ein Datenteil haben, welches das gleiche wie ein Teil des Nutzercodes
ist. Wenn diese übereinstimmen,
wird die dritte Autorisierungsbestimmung normalerweise beendet,
und es wird zur Verarbeitung der vierten Autorisierungsbestimmung übergegangen.
Wenn dies nicht der Fall ist, tritt ein Fehler auf (S126), und die Verwendung
der Debuggingfunktionen ist nicht erlaubt.
-
Durch
die Verarbeitung der ersten, zweiten und dritten Autorisierungsbestimmung
wird bestimmt, ob die Autorisierungseinrichtung eine Diensteinrichtung
ist oder nicht. Das heißt,
eine Autorisierungsdiensteinrichtung 3 wird Befehlsdaten
von der LSI 2 (Verarbeitung der ersten Autorisierungsbestimmung)
verschlüsseln,
die verschlüsselten
Nutzerdaten mit den richtigen Zeitablauf zu dem LSI 2 senden (Verarbeitung
der zweiten Autorisierungsbestimmung), und dann die Nutzerdaten
richtig verschlüsseln
(Verarbeitung der dritten Autorisierungsbestimmung). Durch das Bestimmen
durch mehrere Autorisierungsverarbeitungen, ob die Autorisierungseinrichtung 3 eine
Diensteinrichtung ist, kann auf diese Weise eine hohe Sicherheit
bewirkt werden.
-
Daraufhin
werden als vierte Verarbeitung der Autorisierungsbestimmung der
Nutzercode, der im Schritt S116 entschlüsselt wurde, und der Nutzercode,
der in einem vorgeschriebenen Programm in der elektronischen Vorrichtung 4 gespeichert
wurde, verglichen (S120). In der elektronischen Vorrichtung 4 wird
ein Nutzercode in einer 1:1-Entsprechung mit dem Nutzercode in der
Autorisierungseinrichtung 3 registriert. Wenn diese übereinstimmen,
wird die vierte Autorisierungsbestimmung normalerweise beendet,
und es wird als nächstes
zur Verarbeitung der fünften
Autorisierungsbestimmung übergegangen. Wenn
dies nicht der Fall ist, tritt ein Fehler auf (S126), und die Verwendung
der Debuggingfunktionen ist nicht erlaubt.
-
Durch
diese Verarbeitung der vierten Autorisierungsbestimmung kann eine
Bestimmung durchgeführt
werden, ob der Nutzer ein Dienstnutzer ist oder nicht.
-
Für die Verarbeitung
der fünften
Autorisierungsbestimmung wird außerdem eine Bestimmung durchgeführt, ob
der Debuggingbereich (Adreßbereich),
der zum Zeitpunkt der Debuggingaufforderung bestimmt wurde, mit
dem Erlaubnisniveau, das in dem Nutzercode enthalten ist, der im
Schritt S116 entschlüsselt
wurde, übereinstimmt
(S122). Wenn er übereinstimmt,
wird die Verarbeitung der fünften
Autorisierungsbestimmung normalerweise beendet, und damit wird es
möglich,
die Debuggingfunktionen der CPU, die in den LSI geladen wurden,
für den
bestimmten Adreßbereich
zu verwenden (S124). Wenn er nicht übereinstimmt (was entweder
bedeutet, daß der
gesamte bestimmte Adreßbereich
nicht übereinstimmt
oder daß ein
Teil des bestimmten Adreßbereichs
nicht übereinstimmt),
tritt ein Fehler auf, und die Verwendung der Debuggingfunktionen
ist nicht erlaubt.
-
Alternativ
können
Vorkehrungen getroffen werden, daß, wenn ein Teil des bestimmten
Adreßbereichs
nicht übereinstimmt,
die Verwendung der Debuggingfunktionen nur in dem Bereich nicht
erlaubt ist, der nicht übereinstimmt
(S128).
-
Die
Firmware hat eine Verwendungsautorisierungstabelle, in der zugängliche
Bereiche (Debuggingbereiche), die mehreren Erlaubnisniveaus entsprechen,
in einer elektronischen Vorrichtung bestimmt werden. Die Firmwarebezüge, die
eine Autorisierungstabelle verwenden, bestimmen, ob ein bestimm ter
Debuggingbereich in einem Debuggingbereich enthalten ist, der dem
Erlaubnisniveau entspricht, das in dem entschlüsselten Nutzercode enthalten
ist.
-
Somit
werden in diesem Ausführungsaspekt mehrere
Autorisierungsverarbeitungen ((mehrere) Autorisierungseinrichtungsautorisierungen,
Nutzerautorisierung und Debuggingbereichsautorisierung der Reihe
nach durchgeführt,
und die Debuggingfunktionen können
nicht verwendet werden, es sei denn alle sind beendet, weshalb eine
hohe Sicherheit garantiert werden kann. Selbst mit einer der mehreren
Autorisierungsverarbeitungen, die oben angemerkt sind, kann selbstverständlich eine
vergleichsweise hohe Sicherheit garantiert werden.
-
Bei
einem gewöhnlichen
Sicherheitsverfahren, daß die
Verifizierung durch ein einfaches Paßwort oder dergleichen verwendet,
wird das Sicherheitsverfahren außerdem aufhören richtig zu funktionieren,
wenn das Paßwort
durchsickert, und das Paßwort
kann durch wiederholte Versuche herausgefunden werden. Unter diesen
Umständen
ist so ein Verfahren für
einen Sicherheitsmechanismus für
eine elektronische Vorrichtung, die für mehrere Nutzer vorgesehen
ist, nicht geeignet. Gemäß diesem
Ausführungsaspekt
wird die Sicherheit durch die Kombination der Autorisierungseinrichtung 3 und
der elektronischen Vorrichtung 4 mit Firmware bewirkt,
so daß die
Autorisierungsverarbeitung durch eine physische Verbindung und einen
Autorisierungsalgorithmus durchgeführt wird, weshalb hohe Sicherheit
ermöglicht
wird. Die unrechtmäßige Analyse
durch einen Personalcomputer (PC) 5 ist auch sehr schwierig.
-
Ein
Nutzercode, der in einem vorgeschriebenen Programm eingetragen ist,
das im Speicher in einer elektronischen Vorrichtung (Ziel) gespeichert
ist, kann auch variabel durchgeführt
werden. Wenn der Adreßbereich,
der debuggt werden soll, geändert werden
soll, wird beispielsweise der Nutzercode geändert, um das Erlaubnisniveau
zu ändern,
das in dem Nutzercode enthalten ist. Das Erlaubnisniveau weicht
von Nutzer zu Nutzer ab. Für
die Nutzercodes gewöhnlicher
Nutzer wird beispielsweise ein relativ niedriges Erlaubnisniveau,
das einen Adreßbereich hat
(die LSI 2 selbst z.B.), der nicht debuggt werden kann,
eingestellt, während
für die
Nutzercodes von Herstellern, die LSIs entwickeln, ein hohes Erlaubnisniveau,
mit dem alle Adreßbereiche
(alle Adreßbereich
in dem Ziel einschließlich
der LSI 2) debuggt werden können, eingestellt wird. Dies
beruht darauf, daß ein
Hersteller, der LSIs entwickelt, alle Adreßbereiche untersuchen muß, wenn
ein Problem auftritt, oder eine Einrichtung einem Diagnosetest oder
dergleichen unterliegt.
-
Wenn
jedoch ein Diagnosetest oder dergleichen durchgeführt wird
und die Wartungsperson ihre Autorisierungseinrichtung, das heißt, eine
Autorisierungseinrichtung, in der der Nutzercode der Wartungsperson
registriert ist, mit der elektronischen Vorrichtung (Ziel) verbindet,
auf der die Diagnosen ablaufen, werden der Nutzercode der Autorisierungseinrichtung
(das heißt
der Nutzercode der Wartungsperson in diesem Fall) und der Nutzercode
des Ziels (das heißt
der Nutzercode eines gewöhnlichen
Nutzers in diesem Fall) nicht übereinstimmen
(und die Erlaubnisniveaus werden auch unterschiedlich sein), weshalb
gemäß der Verarbeitung,
die in 2 als Diagramm dargestellt ist, das Debuggen nicht
ausgeführt
werden kann.
-
Wenn
die Autorisierungseinrichtung der Wartungsperson verbunden ist,
und das Ziel eines gewöhnlichen
Nutzers debuggt werden soll, wird daraufhin der Nutzercode des Ziels
vor dem Nutzercode der Wartungsperson geändert, und dann wird die Autorisierungseinrichtung
der Wartungsperson verbunden, woraufhin das Debuggen, das der Niveauinformation
in dem Nutzercode der Wartungspersonen entspricht, möglich wird.
Die Änderung
des Nutzercodes wird beispielsweise durch eine Signaturerstellungsseinrichtung
durchgeführt,
die mit dem PC 5 verbunden ist.
-
4 ist
ein Diagramm einer beispielhaften Systemanordnung gemäß einem
Ausführungsaspekt der
vorliegenden Erfindung, die auch eine Signaturerstellungseinrichtung
umfaßt.
Bevor eine Debuggingaufforderung ausgegeben wird, extrahiert in 4 über den
PC 5 eine Signaturerstellungseinrichtung 8 eine
Signatur, die einen Nutzercode von einem Programm enthält, das
in der elektronischen Vorrichtung 4 gespeichert ist, erzeugt
auch eine Signatur, die einen weiteren Nutzercode (den Nutzercode
der Wartungsperson zum Beispiel) enthält und überschreibt über den
PC 5 die Signatur des Programms in der elektronischen Vorrichtung
gemäß dieser
neu erzeugten Signatur. Somit sind Vorkehrungen getroffen, so daß die Signatur überschrieben
wird, der Nutzercode in dem Ziel geändert wird, und das Erlaubnisniveau
auch geändert
wird, so daß dadurch
selbst Bereiche, die nicht mit dem Nutzercode eines gewöhnlichen
Nutzers debuggt (oder auf die zugegriffen werden) werden können, debuggt
werden können.
-
Nachdem
das Debuggen durch die Wartungsperson beendet wurde, wird die Signatur
in der elektronischen Vorrichtung gemäß der Signatur des gewöhnlichen
Nutzers unter Verwendung der Signaturerstellungseinrichtung 8 wiederhergestellt.
-
Als
nächstes
wird eine elektronische Vorrichtung (Ziel), in der der vorher beschriebene
LSI 2 angebracht ist, beschrieben. 5 ist ein
beispielhaftes Diagramm für
ein Anwendungsbeispiel der LSI 2, 6 ist ein
Anordnungsdiagramm des peripheren Schaltkreises für die LSI 2 in
dem Anwendungsbeispiel, und 7 ist ein
beispielhaftes Diagramm einer elektronischen Vorrichtung.
-
In
dem Beispiel, das in 5 als Diagramm dargestellt ist,
ist die LSI 2 eine LSI für die Kartenbezahlung, die
Lastkartenbezahlungsfunktion 40, eine Kreditkartenbezahlungsfunktion 41,
elektronische Geldbezahlungsfunktion 42 und andere Dienstfunktionen 43 hat.
Deshalb sind mit der LSI 2 ein IC-Kartenleser/schreiber 30,
ein magnetischer Kartenleser 31, eine Anzeige und ein Tastaturfeld 32 verbunden. Falls
erforderlich, kann außerdem
auch ein Quittungsdrucker 33 verbunden werden. Diese Bezahlungsfunktionen 40 bis 43 werden
durch das Ausführen
eines Programms in der CPU 2-2 der LSI 2 umgesetzt.
-
Dementsprechend
können
Kartenbezahlungsfunktionen auf die verschiedenen elektronischen
Vorrichtungen 50 bis 57 durch Anbringen dieser
LSI 2 übertragen
werden. Diese elektronischen Vorrichtungen sind beispielsweise ein
POS-Leser/Schreiber 50,
allgemeines Endgerät 51,
mobiles Endgerät 52,
ATM (automatischer Geldautomat) 53, Verkaufsmaschine 54,
PDA (persönlicher
Datenassistent) 55, tragbares Telefon 56 oder
PC (Personalcomputer) 57.
-
Der
periphere Schaltkreis für
die LSI 2 für solche
Kartenbezahlung ist mit Bezug auf 6 beschrieben.
Der periphere Schaltkreis hat eine Smartkartensteuerung 60,
eine MS-Steuerungsschaltung 61, eine LCD-Steuerungsschaltung 62,
eine KB-Matrixsteuerungsschaltung 63, eine Speichersteuerung 64,
und serielle I/O-Leiterplatten 69 bis 72. In 6 ist
außerdem
die LSI 2, die vorher beschrieben wurde, auf einer Zielleiterplatte 7 angebracht
gezeigt.
-
Die
Smartkartensteuerung 60 liest und schreibt Daten der IC-Karte
(Smartkarte genannt) über
den IC-Kartenleser/schreiber 30.
Die MS-Steuerungsschaltung 61 steuert den MS-Leser 31 (Magnetstreifen).
Die LCD-Steuerungsschaltung 62 steuert
die Anzeige einer LCD (Flüssigkristallanzeige) 32-1.
Die KB-Matrixsteuerungsschaltung 63 erkennt die Eingaben
von dem Tastaturfeld 32-2. Die Speichersteuerung 64 steuert
die Eingaben und Ausgaben zu und von verschiedenen Speichern (ROM 65, SRAM 66,
Flash-Speicher 67,
SDRAM 68) auf der Leiterplatte 7. Die seriellen
I/O-Leiterplatten 69 bis 72 sind mit den Treibern 73 bis 75 auf
der Leiterplatte 7 verbunden um serielle Daten ein- und
auszugeben. Diese sind alle mit einem CPU-Bus verbunden.
-
7 ist
ein Diagramm der Systemanordnung für eine elektronische Vorrichtung,
in der ein Bezahlungs-LSI angebracht ist, der ein POS-System darstellt.
Mit einem Netzwerk 35 sind eine Speichersteuerung 20 und
mehrere POS-Anschlüsse 10 verbunden.
Mit jedem der POS-Anschlüsse 10 ist
ein IC-Kartenleser/schreiber 30 verbunden.
Mit der Speichersteuerung 20 und den mehreren POS-Anschlüssen 10 ist
die vorher beschriebene Bezahlungs-LSI 2 (IFD genannt)
verbunden, und die Bezahlungsdaten werden direkt gesendet und empfangen.
Das heißt, die
Speichersteuerung 20 und die POS-Anschlüsse 10 umfassen die
elektronische Vorrichtung 4 in dem Ausführungsaspekt.
-
Die
IC-Karte 34-1 eines Kunden kommuniziert über die
IFD 2 mit einer POS-IC-Karte 34-2, und die POS-IC-Karte 34-2 kommuniziert
mit der IC-Karte 34-2 der Speichersteuerung 20 über die
IFD 2, Anschlußsteuerung 11,
Netzwerk 35, Anschlußsteuerung 11 und
IFD 2.
-
Wenn
eine elektronische Bezahlung mit einer IC-Karte durchgeführt wird,
werden beispielsweise Daten von der IC-Karte 34-1 des Kunden über die IFD 2 gesendet
und in der POS-IC-Karte 34-2 gespeichert. Danach werden
Daten, die auf der POS-IC-Karte 34-1 des Kunden gespeichert
sind, über
IFD 2, Anschlußsteuerung 11,
Netzwerk 35, Anschlußsteuerung 11 und
IFD 2 gesendet und in der IC-Karte 34-2 in der
Speichersteuerung 20 gespeichert.
-
Da
der Weg der elektronischen Bezahlungsdaten in diesem System durch
die IFDs 2 geschlossen wird, besteht keine Gefahr, daß die Bezahlungsdaten
(das heißt,
Paßwörter, Kontonummern,
Salden und dergleichen) durchsickern, so ist die Sicherheit hoch.
-
Wenn
jedoch auf die IFD 2 unter Verwendung von Debuggingfunktionen
zugegriffen wird, können
Bezahlungsdaten (das heißt,
Paßwörter, Kontonummern,
Salden und dergleichen) unrechtmäßig erfaßt werden,
und es gibt eine Gefahr der unrechtmäßigen Verwendung. Unter diesen
Umständen
sind die Debuggingautorisierungsfunktionen der vorliegenden Erfindung
besonders effektiv für
Anwendungen wie dieser.
-
In
dem Ausführungsaspekt,
der vorher beschrieben wurde, wird die LSI 2 außerdem für die Verwendung
bei Kartenzahlungen beschrieben, aber die Erfindung kann auch für andere
Anwendungen verwendet werden.
-
Auf
Grundlage der vorliegenden Erfindung werden wie vorher beschriebenen
Sicherheitsfunktionen (Debuggingautorisierungsfunktionen) für Debuggingfunktionen
für eine
elektronische Vorrichtung geschaffen, weshalb unrechtmäßige Handlungen
wie das Reverse Engineering des Verhaltens des internen Schaltkreises
der elektronischen Vorrichtungen durch eine dritte Partei vermieden
werden können, und
höhere
Sicherheit als mit gewöhnlichen
Einrichtungen aufrechterhalten werden kann.
-
Da
die Sicherheit durch die Kombination der Autorisierungseinrichtung
(externe Einrichtung) und Firmware in einer elektronischen Vorrichtung
bewirkt wird, wird die Sicherheit durch eine physische Verbindung
und einen Autorisierungsalgorithmus bewirkt, weshalb hohe Sicherheit
möglich
ist. Da mehrere Autorisierungsvorgänge erforderlich sind, kann
auch höhere
Sicherheit garantiert werden.
-
Der
Umfang des Schutzes dieser Erfindung ist nicht auf den unten beschriebenen
Ausführungsaspekt
beschränkt,
sondern erstreckt sich auf Erfindungen, die in den Ansprüchen beschrieben
sind.