-
Die
vorliegende Erfindung bezieht sich auf eine Datentransfervorrichtung,
insbesondere auf einen UART (UART = universal asynchronous receiver/transmitter
= universeller asynchroner Empfänger/Sender),
wie er beispielsweise bei Chipkarten oder auch bei Smartcards eingesetzt
werden kann.
-
Bereits
in einfacheren Mikrocontroller-Schaltungen werden Sende- und Empfangseinheiten
zum Empfang und zur Übermittlung
von Daten an außerhalb
des Mikrocontrollers angeschlossene Schaltungselemente und andere
Komponenten verwendet, da die Sende- und Empfangseinheiten eine
CPU (CPU = central processing unit = Zentralprozessor), die einen
Mikrocontroller typischerweise aufweist, dadurch entlastet, dass
die Sende- und Empfangseinheit
Daten, die beispielsweise von der CPU bereitgestellt werden, beispielsweise
unter anderem mit Synchronisationsinformationen versieht und auf
einer Signalebene aufbereitet und übermittelt. Wäre eine
entsprechende Sende- und Empfangseinheit nicht mit auf dem Mikrocontroller
bzw. auf einem Chip, der den entsprechenden Mikrocontroller umfasst,
implementiert, müsste
die CPU die Aufgaben der Sende- und Empfangseinheit mit übernehmen. Hierdurch
würde die
Effizienz des Mikrocontrollers deutlich sinken, da dieser beispielsweise
in der Zeit, in der Daten gesendet werden, keine weiteren Operationen
ausführen
kann.
-
Aus
diesem Grund weisen heutige Mikrocontroller entsprechende Sende-
und Empfangseinheiten auf, die mit auf dem Chip implementiert sind. Häufig werden
entsprechende Sende- und Empfangseinheiten als UART (UART = universal
asynchronous receiver/transmitter = universeller asynchroner Empfänger/Sender)
bezeichnet. Häufig
sind UARTs direkt mit einem Bus eines Mikrocontrollers, an den typischerweise
auch eine CPU und ein Speicher angeschlossen sind, gekoppelt. Da
sehr häufig, insbesondere
im Bereich von Chipkarten bzw. Smartcards, eine Kommunikation zwischen
dem Mikrocontroller und einer äußeren Komponente,
beispielsweise einem Chipkarten-Lesegerät, seriell erfolgt, besteht
die Aufgabe der UART darin, die auf dem meist als parallelem Bus
ausgeführten
Bus des Mikrocontrollers eingehenden Daten unter anderem mit Synchronisationsinformationen
und Checksummen zu ergänzen
und diese Daten dann in Form serieller Signale an einem entsprechenden
Anschluss bereitzustellen.
-
Da
Chipkarten heute häufig
gerade im Bereich der Sicherheitsüberwachung eingesetzt werden,
beispielsweise im Bereich der Zugangskontrolle zu nicht öffentlich
zugänglichen
Bereichen, zu Computersystemen oder aber auch zur Speicherung von vertraulichen
Daten, beispielsweise zur Speicherung privater Schlüssel im
Rahmen eines Public-Key-Verfahrens, sind solche Chipkarten bzw.
die auf ihnen integrierten Mikrocontroller, die auch als Security-Controller
bezeichnet werden, häufig
Angriffen ausgesetzt. Ein häufig
eingesetzter Angriff gegen Security-Controller besteht darin, dass
mittels eines als Fehlerinduktion bezeichneten Verfahrens versucht wird,
bei einer Ausgabeoperation mehr Daten aus dem Chip des Security-Controllers ausgeben
zu lassen als eigentlich geplant bzw. von dem Programmierer des
Security-Controllers beabsichtigt war. So soll im vorliegenden Beispiel
nach einem Reset (Zurücksetzen)
des Security-Controllers dieser eine als ATR bezeichnete Bytefolge
(ATR = answer to reset = Antwort auf ein Zurücksetzen) mit einer Länge von
16 Byte ausgeben. Wird nun von einem Angreifer der Security-Controller
in dieser Phase so gestört,
dass weitere Bytes ausgegeben werden, bis beispielsweise insgesamt
256 Bytes unplanmäßig ausgegeben worden
sind, besteht die Möglichkeit,
dass unter den zusätzlich
ausgegebenen Bytes auch geheime Informationen enthalten sein können.
-
Es
sind viele verschiedene Möglichkeiten
bekannt und beschrieben, um einerseits den Ursprung eines solchen
Fehleran griffs zu detektieren, beispielsweise durch den Einsatz
von Sensoren in dem Security-Controller, oder aber andererseits
die Entstehung eines entsprechenden Fehlers in einem als Kern des
Chips bezeichneten Bereich, der beispielsweise die CPU, den Speicher
sowie eventuell vorhandene Kryptoprozessoren und (Pseudo-) Zufallszahlengeneratoren
umfasst, zu verhindern oder zu detektieren. All diese Ansätze haben
jedoch den Nachteil, dass sie relativ aufwendig sind. So benötigen sie
im Allgemeinen ein hohes Maß an
Entwicklungsarbeit und sind in der Realisierung des Endproduktes
häufig
sehr teuer.
-
Die
EP 0 696 016 A2 bezieht
sich auf ein Verfahren zur Verwaltung der Sicherheit eines kartenartigen
Speichermediums und auf ein kartenartiges Speichermedium. Genauer
gesagt bezieht sie sich auf eine Vorrichtung und ein Verfahren zur
Verwaltung der Sicherheit einer Chipkarte, wie etwa einer bargeldlosen
Bezahlkarte, einer Identifizierungskarte, einer medizinischen Gesundheitskarte,
einer örtlichen
Verwaltungsservicekarte oder einer ähnlichen Chipkarte, wobei das
Ziel verfolgt wird, jede Transaktion der Chipkarte mit einem Objekt
mit verbesserter Sicherheitsstufe durchzuführen. Die erlaubte Anzahl von
Zugriffen auf eine Datendatei im Rahmen jeder Transaktion ist zuvor
festgelegt. Wird eine Transaktion begonnen zwischen dem kartenartigen
Speichermedium und einer Transaktionsvorrichtung begonnen, wird
die Zahl der Zugriffe auf die Datendatei nach dem Start der Transaktion
gezählt
und die gezählte
Zahl der Zugriffe wird mit der erlaubten Zahl der Zugriffe verglichen. Übersteigt
die Zahl der Zugriffe die erlaubte Zahl der Zugriffe, wird dies
als ein aufgetretener Fehler bewertet, so dass die Transaktion unterbrochen
wird.
-
Die
WO 02/05098 A1 bezieht sich auf ein sicheres Datenspeichergerät, das einen
Datenspeicher und eine Zugriffssteuerschaltung enthält. Die Zugriffssteuerschaltung
behält
einen Versuchszählerstand
von ungültigen
Zugriffsversuchen und einen Zugriffszählstand von erlaubten Zugriffen
auf den Speicher. Die Zugriffssteuerschaltung deaktiviert den Zugriff auf
den Speicher, wenn der Zählerstand
für Versuche
oder der Zählerstand
für Zugriffe
einen jeweiligen, vorbestimmten Wert überschreitet. Die Zählerstände werden
in Speicherzellen mit durchbrennbaren Verbindungen behalten.
-
Die
WO 01/54057 A1 bezieht sich auf eine integrierte Sicherheitsschaltung,
beispielsweise einen Mikrocontroller für Chipkarten, und enthält eine Funktionseinheit,
die eine Sicherheitsfunktion ausführt. Eine Steuerungseinrichtung
ermittelt die Anzahl der Ausführungen
der Sicherheitsfunktionen pro Zeit. Bei Überschreiten eines Schwellenwertes
wird die weitere Ausführung
der Sicherheitsfunktionen blockiert. Hierzu ist vorzugsweise eine
einen Ladungsspeicher umfassende analoge Uhr vorgesehen, die auch
bei abgeschalteter Versorgungsspannung die verstreichende Zeit misst.
Ein Benutzungszähler
wird bei jedem Aufruf der Sicherheitsfunktion aktualisiert. Die
Sicherheitsschaltung bietet erhöhten Schutz
gegen statistische Angriffe.
-
Die
DE 198 31 884 A1 bezieht
sich auf ein System und Verfahren zum Schutz gegen analytisches
Ausspähen
von geheimen Informationen. Jeder geheimen Information, insbesondere
Schlüsseln, wird
ein Zähler
zugeordnet. Der Zähler
zählt die
Anzahl der Benutzungen der geheimen Informationen. Hierbei wird
der Zähler
auf einen Anfangswert eingestellt. Jede Benutzung des geheimen Datenelements erhöht den Zählerstand
um einen definierten Wert. Erreicht der Zählerstand einen Maximalwert,
wird die Benutzung des geheimen Datenelementes gesperrt. Die Sperrung
des geheimen Datenelements kann jedoch verhindert werden, wenn durch
Eintreten eines definierten Ereignisses vor Erreichen des Maximalwertes
eines Zählers
der Zählerstand
automatisch wieder auf den Ausgangswert zurückgesetzt wird. Als Ereignis
lässt sich
jede technische, wirtschaftliche oder organisatorische Bedingung
definieren. Hierdurch ist es möglich,
dass jedem Schlüssel
ein eigener Zähler
zugeordnet werden kann, so dass unterschiedliche Benutzungszahlen
für jeden
Schlüssel im
Hinblick auf seine Funktion festgelegt werden können. Da eine Chipkarte eine
beliebige Anzahl von Schlüsseln
für verschiedenste
Anwendungen enthalten kann, beschränkt sich die Sperrung dann
jeweils nur auf die betreffende Anwendung. Insbesondere wird die
Benutzung der Chipkarte daher nicht als Ganzes gesperrt.
-
Die
DE 198 18 830 A1 bezieht
sich auf ein Verfahren und eine Anordnung zur Verhinderung der missbräuchlichen
Verwendung der auf einem Chipkarten-Interface vorhandenen Identifizierungsprozeduren,
bei denen eine übermäßige Nutzung
der Authentifizierungsprozeduren durch Bestimmung der absoluten
Nutzungshäufigkeit
und/oder der relativen Nutzungshäufigkeit
pro Zeitintervall durchgeführt wird.
Wird ein Missbrauchsfall erkannt, wird die Chipkarte gesperrt, kann
jedoch mittels eines geeigneten Schlüssels, gegebenenfalls in Verbindung
mit kryptographischen Verfahren auch ferngesteuert, und diesbezüglich noch
ausführbarer
Prozeduren auf dem Chipkarten-Interface
entsperrt werden.
-
Die
US 6,726,108 B1 bezieht
sich auf ein Gerät
zur Begrenzung von Betrugsversuchen an integrierten Schaltungskarten,
wie etwa Chipkarten. Ein integriertes Schaltungsgerät hat hierbei
einen Speicherbereich, der einen Datenspeicher beinhaltet. Der Datenspeicher
hat ein Zählerelement
und ein Anzeigeelement. Das Zählerelement
zählt wenigstens
eine Zahl des Auftretens von Ereignissen oder Vorfällen innerhalb
des Geräts.
Erreicht das Zählerelement
einen Schwellenwert, der eine große, maximale Zahl des Auftretens
von Ereignissen oder Vorfällen
andeutet, geht das Anzeigeelement von einem ersten Zustand in einen
zweiten Zustand über,
was beispielsweise zur Folge haben kann, dass eine Deaktivierungseinrichtung
die Chipkarte deaktiviert.
-
Die
US 6,282,653 B1 bezieht
sich auf ein Verfahren zur Einsammlung von Lizenzgebühren und ein
System zur Verwendung von urheberrechtlich geschützten digitalen Materials im
Internet. Die
US 6,282,653
B1 beschreibt ein Verfahren, ein System und ein Computerprogrammprodukt
zur Durchsetzung der Lizenzgebühreintreibung
im Hinblick auf eine Online-Verteilung von elektronisch veröffentlichtem
Material über
ein Computernetzwerk. Das Verfahren zur Verwaltung der Verwendung
einer digitalen Datei mit einem in dem urheberrechtlichen Schutz unterworfenen
Inhalt im Auftrag eines Inhaltanbieters beginnt mit der Etablierung
eines Zählers
für eine
Anzahl erlaubter Kopien der digitalen Datei. In Abhängigkeit
eines gegebenen Protokolls wird eine Kopie der digitalen Datei selektiv
von der Quelle zu einem Ziel transferiert. So kann beispielsweise
die Quelle und das Ziel auf dem gleichen Computer beheimatet sein,
wobei die Quelle ein Plattenspeichersystem und das Ziel ein Wiedergabegerät sein kann,
wie etwa ein Drucker, eine Anzeige, eine Soundkarte oder Ähnliches.
Im Rahmen des Verfahrens wird eine Markierung jedes Mal festgehalten,
wenn die digitale Datei von der Quelle zu dem Wiedergabegerät transferiert
wird. Der Zähler
wird bei jedem Transfer dekrementiert. Erreicht der Zähler einen
vorgegebenen Wert, beispielsweise Null, wird die Datei zerstört oder auf
eine andere Art und Weise wird der Transport von der Quelle verhindert.
Die registrierten Anzeigen werden zu einem Verwaltungsserver übertragen,
um die Bezahlung der Lizenzgebühren
an den Inhaltsanbieter zu ermöglichen.
-
Ausgehend
von diesem Stand der Technik besteht die Aufgabe der vorliegenden
Erfindung darin, eine Datentransfervorrichtung und ein Verfahren zum
Senden von an einem Dateneingang eingehenden Daten über einen
Datenausgang mit einer verbesserten Sicherheit gegenüber Angriffen,
die eine unerwünschte
Datenausgabe herbeiführen
zu versuchen, zu schaffen.
-
Diese
Aufgabe wird durch eine Datentransfervorrichtung gemäß Anspruch
1, durch ein Verfahren gemäß Anspruch
11 und durch ein Computer-Programm gemäß Anspruch 12 gelöst.
-
Die
erfindungsgemäße Datentransfervorrichtung
weist eine Datensendeeinrichtung zum Senden von an einem Dateneingang der
Datentransfervorrichtung eingehenden Daten über einen Datenausgang, einen
Zähler
zum Dekrementieren/Inkrementieren eines Zählerwerts für jedes den Datenausgang passierende
Datum und eine Überwachungseinrichtung
zum Überwachen
des Zählerwertes,
ob derselbe eine vorbestimmte Bedingung erfüllt, und zum Ausgeben eines
Alarmsignals, falls dies der Fall ist, auf.
-
Bei
dem erfindungsgemäßen Verfahren
zum Senden von an einem Dateneingang eingehenden Daten über einen
Datenausgang wird ein Datums über
den Datenausgang gesendet, ein Zählerwert
inkrementiert oder dekrementiert, überwacht, ob der Zählerwert
eine vorbestimmte Bedingung erfüllt,
und wenn der Zäh lerwert
die vorbestimmte Bedingung erfüllt,
ein Alarmsignal ausgegeben.
-
Der
vorliegenden Erfindung liegt die Erkenntnis zugrunde, dass die Sicherheit
eines Security-Controllers dadurch verbessert werden kann, dass Angriffe
auf eine Ausgabefunktion des Security-Controllers blockiert werden
können,
indem eine Datentransfervorrichtung so erweitert wird, dass diese durch
Dekrementieren oder Inkrementieren eines Zählwerts eines Zählers und
Vergleichen des Zählwerts
mit einem Vergleichswert das Senden von Daten über einen Datenausgang der
Datentransfervorrichtung beschränkt.
-
Ein
weiterer Vorteil der erfindungsgemäßen Datentransfervorrichtung
und des erfindungsgemäßen Verfahrens
zum Senden von an einem Dateneingang eingehenden Daten über einen
Datenausgang besteht darin, dass dieses Konzept einfach und sehr preisgünstig umgesetzt
werden kann, so dass insbesondere für relativ preisgünstige Security-Controller Angriffe
auf die Ausgabefunktion, sogenannte Dumps, blockiert werden können. Der
konstruktive und entwicklungstechnische Aufwand kann. hierbei durch
eine Umsetzung im Vergleich zu bekannten Lösungen dadurch deutlich reduziert
werden, dass neben einer Einführung
einer erfindungsgemäß modifizierten
Datentransfereinrichtung in vielen denkbaren Ausführungsformen
nur eine geringfügige
Anpassung der Programmierung der Security-Controller notwendig ist, wie im weiteren
Verlauf der vorliegenden Anmeldung erläutert wird.
-
Bevorzugte
Ausführungsbeispiele
der vorliegenden Erfindung werden nachfolgend unter Bezugnahme auf
die beiliegenden Zeichnungen näher
erläutert.
Es zeigen:
-
1 ein
Blockschaltbild eines ersten Ausführungsbeispiels eines Security-Controllers
mit einer erfindungsgemäßen Datentransfervorrichtung; und
-
2 ein
Blockschaltbild eines zweiten Ausführungsbeispiels eines Security-Controllers
mit einer erfindungsgemäßen Datentransfervorrichtung.
-
Bezug
nehmend auf die 1 und 2 wird nun
ein erstes Ausführungsbeispiel
eines Security-Controllers mit einer erfindungsgemäßen Datentransfervorrichtung
beschrieben. Hierbei werden in den 1 und 2 für gleiche
bzw. ähnliche
Objekte gleiche bzw. ähnliche
Bezugszeichen verwendet.
-
Den
in 1 und 2 gezeigten Ausführungsbeispielen
liegen zwei unterschiedliche Vorgehensweise für eine Überwachung einer Anzahl von gesendeten
Daten zu Grunde. Während
in dem in 1 gezeigten Ausführungsbeispiel
ausgehend von einem Startwert, beispielsweise von 0, die Zahl der
gesendeten Daten durch Inkrementieren eines Zählers bestimmt und von einer
Vergleichseinrichtung bzw. Überwachungseinrichtung
mit einem Vergleichswert bzw. Zielwert verglichen bzw. überwacht bzw. überprüft wird,
wird in dem in 2 gezeigten Ausführungsbeispiel
der Zähler
mit einem Startwert initialisiert und mit jedem einen Datenausgang
passierenden Datums dekrementiert. Die Vergleichseinrichtung bzw. Überwachungseinrichtung
gibt in diesem Fall das Alarmsignal bei Erreichen des Vergleichswertes
bzw. des Zielwertes, im vorliegenden Ausführungsbeispiel bei dem Erreichen
des Wertes 0, aus. Grundsätzlich
ist es jedoch nicht notwendig, der Vergleichseinrichtung bzw. der Überwachungseinrichtung
den Zählwert
des Zählers
zu übermitteln. So
ist es durchaus auch denkbar, dass das Alarmsignal ausgegeben wird,
wenn eine vorbestimmte Bedingung erfüllt ist, also beispielsweise
das „Überlaufen" oder „Unterlaufen" des Zählerwertes,
was beispielsweise durch ein Setzen eines Carry-Flags als Über/Unterlaufsignal
angezeigt werden kann. Alternativ ist es auch möglich, nur das Erreichen eines Wertes
zu überprüfen, indem
beispielsweise ein Setzen eines einen Zählerwert 0 anzeigendes Zero-Flag überwacht
bzw. überprüft wird.
Allgemein gesprochen kann das Erfüllen der vorbestimmten Bedingung
somit beispielsweise dem Erreichen, Überschreiten oder Unterschreiten
eines Zielwertes durch den Zählerwert
bzw. Zählwert,
aber auch dem erfüllen
einer vorbestimmten Beziehung zwischen Zählerwert und dem Vergleichswert
oder dem Zielwert entsprechen.
-
1 zeigt
ein Blockschaltbild eines Ausführungsbeispiels
einer Datentransfervorrichtung 100, die ein Security-Controller 110 neben
einer CPU 120 (CPU = central processing unit = Zentralprozessor), einem
Speicher 130 und einem Bus 140 umfasst. Der Bus 140 verbindet
die CPU 120 und den Speicher 130. Darüber hinaus
ist die Datentransfervorrichtung 100 über einen Dateneingang 100a ebenfalls
mit dem Bus 140 gekoppelt. Der Bus 140 kann hierbei prinzipiell
als beliebiger Datenbus ausgeführt
sein. Typischerweise ist der Bus 140 zur parallelen oder seriellen
Datenübertragung
ausgelegt, wobei bevorzugt eine parallele Datenübertragung implementiert wird,
da diese im Allgemeinen eine höhere
Datentransferrate ermöglicht.
-
Die
Datentransfervorrichtung 100 weist neben dem Dateneingang 100a auch
einen Datenausgang 100b auf, der mit einem externen Anschluss 150 verbunden
ist. Der externe Anschluss 150 kann als Anschlusspin oder
als Kontaktfläche
eines Chips, in den der Controller bzw. Security-Controller 110 integriert
ist, im Fall einer kontaktbehafteten Kommunikation mit einer äußeren, in 1 nicht
gezeigten Schaltung ausgeführt
sein. Im Falle einer kontaktlosen Kommunikation mit einer äußeren Schaltung
ist der externe Anschluss 150 häufig mit einer Induktivität (z. B.
einer Spule oder einer oder mehreren Windungen einer Antennenspule
oder einer anderen Induktivität),
einer Kapazität,
einem Schwingkreis, einer Antenne oder einer anderen Vorrichtung
zur Kommunikation mittels Funkwellen gekoppelt.
-
Da
typischerweise Daten über
den Datenausgang 100b der Datentransfervorrichtung 100 mit Hilfe
eines seriellen Übertragungsprotokolls übertragen
bzw. gesendet werden, die Daten an dem Dateneingang 100a der
Datentransfervorrichtung 100 typischerweise jedoch mit
einem parallelen Datentransferprotokoll übertragen werden, wird die
Datentransfervorrichtung 100 häufig auch als UART (universal asynchronous
receiver/transmitter = universeller asynchroner Empfänger/Sender)
bezeichnet.
-
Die
Datentransfervorrichtung 100 bzw. der UART 100 weist
eine Datensendeeinrichtung 160 mit einem ersten Anschluss,
der an den Dateneingang 100a gekoppelt ist, und mit einem
zweiten Anschluss, der mit dem Datenausgang 100b gekoppelt
ist, einen Zähler 170 und
eine Überwachungseinrichtung 180 bzw.
Vergleichseinrichtung 180 auf. Der Zähler 170 ist hierbei
mit einem ersten Anschluss ebenfalls an den Datenausgang 100b und
mit einem zweiten Anschluss an die Vergleichseinrichtung 180 gekoppelt. Die
Vergleichseinrichtung 180 weist neben einem ersten Anschluss,
mit dem sie an den Zähler 170 gekoppelt
ist, einen zweiten Anschluss auf, über den sie mit der CPU 120 verbunden
ist.
-
Unter
normalen Betriebszuständen
und wenn der Security-Controller 110 nicht
mit einer in 1 nicht gezeigten äußeren Schaltung
kommuniziert, also insbesondere an diese in
-
1 nicht
gezeigte äußere Schaltung
Daten sendet, können
die CPU 120 und der Speicher 130 miteinander über den
Bus 140 Daten austauschen. Eine Übermittlung von Daten aus dem
Security-Controller 110 an eine äußere Schaltung übernimmt
prinzipiell der UART 100. Die Datensendeeinrichtung 160 übernimmt
hierbei sowohl die Protokollwandlung (paralleles Protokoll in serielles
Protokoll), die eigentliche Ausgabe der Daten sowie die hierzu notwendige
Signalanpassung. Die Datensendeeinrichtung 160 empfängt also
in dem parallelen Protokoll des Busses 140 die Daten, bereitet
diese auf und stellt an ihrem zweiten Anschluss einen entsprechend
aufbereiteten seriellen Datenstrom bereit.
-
Der
UART 100 weist eine Sicherheitsschaltung auf, die prinzipiell
in alle existierenden Security-Controller implementierbar ist und
deren zentrale Komponenten der Zähler 170 und
die Vergleichseinrichtung 180 sind. Diese Erweiterung des
UART 100 ermöglicht
es, wie im Folgenden detailliert erörtert wird, beispielsweise
durch eine Kopplung der Vergleichseinrichtung 180 mit dem
Bus 140, vor einem beabsichtigten Senden von Daten an eine äußere Schaltung über den
externen Anschluss 150 der Vergleichseinrichtung 180 einen
Vergleichswert zur Verfügung
zu stellen. Mit anderen Worten kann vor einer geplanten Ausgabe
von Daten die UART 100 auf einen bestimmten Wert programmiert
werden. Durch ein Erfassen der Zahl der über den Datenausgang 100b gesendeten
Daten durch den Zähler 170 und durch
ein Vergleichen des Zählerwerts
des Zählers 170 mit
dem voreingestellten oder dem der Vergleichseinrichtung 180 zur
Verfügung
gestellten Vergleichswert kann somit die Anzahl der von der UART 100 ausgegebenen
Daten, also der ausgegebenen Bytes, erfasst und daraufhin beschränkt werden. Hierzu
wird durch eine Ankündigung
einer beabsichtigten Sendung von Daten der Zähler 170 auf einen vorbestimmten
Startwert initialisiert, also beispielsweise auf einen Zählerwert
0 gesetzt. Hierbei kann auch der Vergleichseinrichtung 180 zeitgleich
der Vergleichswert übermittelt
werden, so dass die Übermittlung
des Vergleichswertes und die Initialisierung gleichzeitig durchgeführt werden
kann. Die Initialisierung und die Übermittlung des Vergleichswertes kann
aber auch zeitlich getrennt, beispielsweise durch getrennte Befehlsfolgen
durch die CPU 120, erfolgen. Werden nun dem UART 100 an
dem Dateneingang 100a Daten zur Verfügung gestellt, so werden diese
von der Datensendeeinrichtung 160 aufbereitet und an dem
Datenausgang 100b ausgegeben.
-
Aufgrund
der Kopplung des Zählers 170 an den
Datenausgang 100b der UART 100 weist der Zählerwert
des Zählers 170 die
Anzahl der seit der letzten Initialisierung des Zählers 170 gesendeten Daten
auf. Da der Zähler 170 den
Zählerwert
der Vergleichseinrichtung 180 zur Verfügung stellt, kann die Vergleichseinrichtung 180 bei Überschreiten
des Vergleichswerts durch den Zählerwert
an dem zweiten Anschluss der Vergleichseinrichtung 180 ein
Alarmsignal erzeugen, das wiederum der CPU 120 zur Verfügung gestellt
wird. Die CPU 120 kann so bei einem Eintreffen des Alarmsignals
beispielsweise so ausgelegt sein, dass die in dem Moment des Eintreffens ausgeführte Operation
abgebrochen wird. Darüber hinaus
ist es auch möglich,
dass der gesamte Security-Controller 110 durch die CPU 120 in
diesem Fall angehalten wird oder dass ein anderer auf dem Chip, der
den Security-Controller 110 umfasst, implementierter Schutzmechanismus
ausgelöst
wird. Mit anderen Worten, wird versucht, mehr als die vorgegebene Anzahl
an Bytes auszugeben, so kann der erfindungsgemäße UART 100 je nach
Ausführung
die laufende Operation stoppen oder auch einen Alarm senden, der
dann den gesamten Chip stoppen kann.
-
2 zeigt
ein Blockschaltbild eines zweiten Ausführungsbeispiels eines erfindungsgemäßen Security-Controllers
bzw. eines Security-Controller-Chips 110, der sich von
dem in 1 gezeigten ersten Ausführungsbeispiel nur durch den
Aufbau der erfindungsgemäßen Datentransfervorrichtung 200 bzw.
dem erfindungsgemäßen UART 200 unterscheidet.
Auch der in 2 dargestellte Security-Controller 110 weist
eine CPU 120, einen Speicher 130, einen Bus 140 und
einen externen Anschluss 150 auf, die identisch zu dem
in 1 gezeigten Ausführungsbeispiel eines Security-Controllers 110 verschaltet
sind. Der URRT 200 weist ebenso wie der UART 100 aus 1 einen
Dateneingang 200a und einen Datenausgang 200b auf.
Ebenso wie der Dateneingang 100a des UART 100 ist
der Dateneingang 200a des UART 200 mit dem Bus 140 gekoppelt.
Darüber
hinaus ist auch der Datenausgang 200b des UART 200 mit
dem externen Anschluss 150 gekoppelt, wie dies schon das
Ausführungsbeispiel
aus 1 gezeigt hat. Im Inneren des UART 200 ist
der Dateneingang 200a mit einem ersten Anschluss einer
Datensendeeinrichtung 160 und der Datenausgang 200b mit
einem zweiten Anschluss der Datensendeeinrichtung 160 verbunden,
wobei die Datensendeeinrichtung 160 auch hier mit der in 1 gezeigten übereinstimmt.
-
Der
UART 200 weist darüber
hinaus einen Zähler 270,
eine Vergleichseinrichtung 280 und eine Bereitstellungseinrichtung 290 auf.
Der Zähler 270 ist hierbei
mit einem ersten Anschluss an den Datenausgang 200b, mit
einem zweiten Anschluss an die Vergleichseinrichtung 280 und
mit einem dritten Anschluss an einen ersten Anschluss der Bereitstellungseinrichtung 290 gekoppelt.
Die Bereitstellungseinrichtung 290 ist darüber hinaus
mit einem zweiten Anschluss an den Dateneingang 200a des
UART 200 gekoppelt. Die Vergleichseinrichtung 280 weist
neben einem ersten Anschluss, über
den sie mit dem Zähler 270 verbunden
ist, einen zweiten Anschluss auf, über den sie mit der CPU 120 verbunden
ist.
-
Die
Funktionsweise und das Zusammenspiel der CPU 120, des Speichers 130 und
des Busses 140 unterscheidet sich von dem in 1 gezeigten Ausführungsbeispiel
eines Security-Controllers 110 nicht,
so dass für
die Beschreibung der Funktionsweise auf die entsprechenden Absätze weiter
oben verwiesen wird. Auch die Funktionsweise der Datensendeeinrichtung 160 des
UART 200 unterscheidet sich nicht von der Funktionsweise
der Datensendeeinrichtung 160 des UART 100 aus 1.
-
Um
in dem in 2 gezeigten Ausführungsbeispiel
einen Angriff auf die Ausgabefunktion des Security-Controllers 110,
also einen sogenannten Dump, zu blockieren, wird zunächst die
Anzahl an Bytes, die von dem Security-Controller 200 ausgegeben
werden dürfen,
bestimmt. Auch in dem in 2 gezeigten Ausführungsbeispiel
wird wiederum die tatsächliche
Ausgabe direkt an dem Datenausgang 200b des UART 200,
der als ein Ausgabemodul des Security-Controllers 110 fungiert,
kontrolliert. Der UART 200 weist somit wiederum eine Kontrollfunktion
zur Überwachung
der an dem Datenausgang 200b tatsächlich gesendeten Datenmenge
auf. Im Falle des erfindungsgemäßen UART 200,
wie er auf dem Security-Controller 110, der in 2 gezeigt
ist, zum Einsatz kommt, kann beispielsweise durch den Zähler 270 die
Ausgabe der Start/Frame-Bits des seriellen Datenstroms der Datensendeeinrichtung 160 abgegriffen
und detektiert werden, so dass die Start/Frame-Bits des seriellen
Datenübertragungsprotokolls
auf den Zähler 270 wirken,
der diese letztendlich zählt.
-
Im
Unterschied zu dem in 1 gezeigten Ausführungsbeispiel
eines Security-Controllers 110 wird in diesem Fall der
Zähler
jedoch nicht inkrementiert, sondern dekrementiert. Zu diesem Zweck
wird nach einer vorherigen Bestimmung der Anzahl der zu sendenden
Bytes, die beispielsweise durch die CPU 120 erfolgen kann,
die entsprechende Anzahl um 1 erhöht und der Bereitstellungseinrichtung 290 als Startwert
zur Verfügung
gestellt bzw. übermittelt.
Die Erhöhung
der Anzahl der zusenden Bytes um 1 kann alternativ auch von der
Bereitstellungseinrichtung 290 mit übernommen werden. Die Bestimmung
der auszugebenden Anzahl der Bytes kann hierbei Teil der Programmierung
des Security-Controllers 110 sein. Dies kann beispielsweise
so ausgeführt
sein, dass die Programmierung des Security-Controllers 110 vor
jeder Ausgabe eine oder mehrere Befehlszeilen aufweist, die der
Bereitstellungseinrichtung 290, beispielsweise durch ein
Schreiben in ein bestimmtes Register oder in eine bestimmte Adresse,
die Zahl der geplanten bzw. beabsichtigten Datenmenge mitteilt.
Die Bereitstellungseinrichtung 290 initialisiert daraufhin
den Zähler 270 mit
dem Startwert. Daraufhin wird mit jedem Start/Frame-Bit, das die
Datensendeeinrichtung 160 an dem Datenausgang 200b ausgibt,
der Zähler 270 um
1 reduziert. Über
die Verbindung zwischen dem Zähler 270 und
der Vergleichseinrichtung 280 bzw. der Überwachungseinrichtung steht
der Vergleichseinrichtung 280 nun jeweils der aktuelle
Zählerwert
zur Verfügung.
Erreicht dieser einen vorbestimmten oder auch beispielsweise von
der CPU 120 bestimmten Vergleichswert, also beispielsweise
den Wert 0, gibt die Vergleichseinrichtung ein Alarmsignal an ihrem
zweiten Anschluss aus, das beispielsweise, wie dies 2 auch
zeigt, der CPU 120 zugeführt werden kann. Wie bereits
im Zusammenhang mit dem in 1 gezeigten
Ausführungsbeispiel
erläutert
wurde, ist es so möglich,
in dem Fall, wenn versucht wird, mehr als die vorgegebene Anzahl
an Bytes auszugeben, ein Stoppen der laufenden Operation oder auch
ein Senden eines Alarms herbeizuführen, so dass der ganze Chip,
der den Security-Controller 110 umfasst, gestoppt werden
kann.
-
In
den einführenden
Abschnitten der vorliegenden Anmeldung wurde bereits als ein mögliches Angriffsszenario
eine Störung
des Security-Controllers im Rahmen eines durchgeführten Reset
(Zurücksetzens)
des Security-Controllers 110 diskutiert. Wie bereits dort
erläutert
wurde, wird im Rahmen eines Reset durch den Security-Controller 110 eine
Bytefolge an dem externen Anschluss 150 ausgegeben, die auch
als ATR (ATR = answer to reset = Antwort auf ein Zurücksetzen)
bezeichnet wird. Je nach verwendetem Protokoll weist das ATR-Signal
eine bestimmte Länge
auf. Beträgt
diese Länge
beispielsweise 16 Byte, so wird die Software im Security-Controller 110 so
programmiert, dass der Zähler 270 der
UART 200 durch die Bereitstellungseinrichtung 290 auf
einen Alarmwert bzw. einen Vergleichswert oder Startwert von 17
eingestellt wird. Anschließend
führt der
Security-Controller 110 bzw. genauer gesagt die CPU 120 die
Ausgabe der ATR-Bytefolge aus, wobei im vorliegenden Beispiel planmäßig 16 Byte
ausgegeben werden sollen. Stört
nun während
der nun folgenden Ausgabe der 16 Byte der ATR-Bytefolge ein Angreifer den
Security-Controller 110 beispielsweise mittels Lichtimpulsen,
Ionenbeschuss, gezielten Spannungsstößen begleitet von oder auch
durch andere invasive Maßnahmen,
wie beispielsweise das Rückschleifen
oder Rückätzen bestimmter
Bereiche des Chips, der den Security-Controller 110 umfasst,
in der Form, dass das auf der CPU 120 ablaufende Programm
nun weitere Bytes ausgeben würde,
greift die durch den Zähler 270,
die Bereitstellungs einrichtung 290 und die Vergleichseinrichtung 280 implementierte
Kontrollfunktion ein.
-
Gelingt
es also einem Angreifer, die Ausgabe des Security-Controllers 110 bzw.
die Ausgabe der CPU 120 so zu manipulieren, dass mehr als
die beabsichtigten 16 Bytes ausgegeben würden, löst die Vergleichseinrichtung 280 im
Zusammenhang mit dem Zähler 270 im
Inneren der URRT 200 nun jedoch bei Erreichen des 17. Bytes,
also in dem vorliegenden Fall bei Erreichen des Vergleichswertes
0 durch den Zählwert,
einen Alarm aus, so dass im vorliegenden Ausführungsbeispiel der CPU 120 ein
Alarmsignal zugeführt
wird, so dass die CPU 120 den Alarm bzw. den Angriff erkennt
und geeignete Gegenmaßnahmen,
beispielsweise einen erneuten Reset (Sicherheitsreset), ergreifen
kann. In diesem Fall ist der Angriff fehlgeschlagen.
-
Sowohl
die Zähler 170, 270 wie
auch der Speicher für
den Alarmwert bzw. Vergleichswert können in Form eines SFR (SFR
= special function register = Spezialfunktionsregister) ausgeführt sein.
Hierbei ist es durchaus möglich,
dass der entsprechende SFR räumlich
im Bereich der CPU 120 angeordnet ist. Darüber hinaus
ist es ebenfalls möglich,
das SFR durch besondere Maßnahmen
gegen invasive Eingriffe zu schützen.
Denkbar ist hier beispielsweise eine räumliche Anordnung des SFR in
einem Bereich des Chips, der den Security-Controller 110 umfasst, der
eine hohe Dichte an funktionalen Elementen, beispielsweise Transistoren,
Kondensatoren oder andere Bauelemente, aufweist, die für die Funktionsweise des
Security-Controllers 110 unabdingbar
sind. Hierdurch wird ein invasiver Eingriff in den Security-Controller 110 dadurch
erschwert, dass mit hoher Wahrscheinlichkeit umliegende Bereiche
im Rahmen eines invasiven Eingriffs mit beschädigt werden, so dass die gesamte
Funktionsweise des Security-Controllers 110 nicht
mehr gewährleistet
ist bzw. dieser bei dem Eingriff zerstört wird.
-
Bei
den in 1 und 2 gezeigten Ausführungsbeispielen
ist die Datensendeeinrichtung 160 auf dem Security-Controller 110 bzw.
dem Security-Controller-Chip 110 festverdrahtet (hardwired) und
hierbei so ausgelegt, dass sie jedes an ihrem ersten Anschluss,
und damit an dem Dateneingang 100a, 200a des erfindungsgemäßen UART 100, 200, bereitgestellte
Datum entsprechend aufbereitet an ihrem zweiten Anschluss, und damit
an dem Datenausgang 100b, 200b des erfindungsgemäßen UART 100, 200 ausgibt.
In den hier beschriebenen Ausführungsbeispielen
ist sie also als nicht-programmierbar ausgeführt und weist keine interne
Logik zur Überwachung
der Anzahl, Beschaffenheit oder des Inhalts der gesendeten Daten
auf.
-
Obwohl
in den in den 1 und 2 gezeigten
Ausführungsbeispielen
implizit davon ausgegangen wurde, dass der Zähler 170, 270 mit
einer Schrittweite von 1 inkrementiert bzw. dekrementiert wurde,
ist im Prinzip hier eine beliebige Schrittweise denkbar. So kann
die Schrittweise beispielsweise von der Art des zu sendenden Datums
abhängen, also
beispielsweise ebenfalls von der CPU 120 einstellbar bzw.
programmierbar sein. Typischerweise beträgt die Schrittweite beim Inkrementieren
bzw. Dekrementieren des Zählerwerts
des Zählers 170, 270 jedoch
1. Darüber
hinaus kann sich sowohl der Zählerwert
des Zählers 170, 270 wie
auch der Vergleichswert sowohl auf ein Byte, ein Bit, ein Datenwort
der CPU 120 bzw. des Speichers 130 oder auf eine
andere beliebige Zahl von Bits beziehen.
-
Wie
bereits im Zusammenhang mit dem in 1 gezeigten
ersten Ausführungsbeispiel
erläutert wurde,
kann die erfindungsgemäße Datentransfervorrichtung 100, 200 bzw.
der erfindungsgemäße UART 100, 200 zur
Kommunikation mit einer äußeren Schaltung
neben einer kontaktbehafteten Kommunikation über einen elektrischen Kontakt
des die UART 100, 200 umfassenden Chips bzw. Security-Controller-Chips 110,
beispielsweise in Form eines Pins oder einer Kontaktfläche, auch über eine
berührungslose
bzw. kontaktlose Kommunikation erfolgen. In diesem Fall ist der
externe Anschluss 150 nicht an einen Pin bzw. an eine Kontaktfläche, sondern
an eine Sendevorrichtung angeschlossen. Erfolgt beispielsweise die
Kommunikation über
Funkwellen, kann es sich bei dieser Sendevorrichtung beispielsweise
um eine Induktivität,
eine Kapazität,
einen Schwingkreis, eine Antenne oder auch eine komplexere Funk-Sendevorrichtung
handeln, die Daten beispielsweise über eine Amplitudenmodulation,
eine Frequenzmodulation oder eine Phasenmodulation kodiert senden
kann. Erfolgt die Signalübermittlung hingegen
auf optischem Wege, wobei im Rahmen der vorliegenden Anmeldung unter
einer optischen Signalübermittlung
neben einer Signalübermittlung im
sichtbaren Wellenlängenbereich
auch eine Signalübermittlung
im Infrarotbereich, im Mikrowellenbereich und im ultravioletten
Bereich verstanden wird, so kann zum Senden beispielsweise eine
LED (LED = light emitting diode = Leuchtdiode), eine Laserdiode
oder auch eine andere Lichtquelle eingesetzt werden.
-
Obwohl
die in den 1 und 2 gezeigten
bevorzugten Ausführungsbeispiele
eines Security-Controllers 110 nur die CPU 120,
den Speicher 130, den Bus 140 und die Datentransfervorrichtung 100, 200 umfasst
haben, kann ein entsprechender Security-Controller 110 durchaus
weitere Komponenten aufweisen. Zu diesen weiteren Komponenten zählen z.
B. Krypto-Prozessoren,
(Pseudo-) Zufallszahlengeneratoren, Sensoren für elektrische, mechanische,
chemische oder andere Größen, andere Komponenten
für bestimmte
Aufgaben (Spezialkomponenten) sowie weitere Anschlüsse und
Datentransfervorrichtungen zur Kommunikation mit äußeren Schaltungen,
insbesondere Empfangseinrichtungen, gehören.
-
Abweichend
von den hier beschriebenen Ausführungsbeispielen
ist darüber
hinaus auch eine Realisierung des Zählers 170, 270 und
der Vergleichseinrichtung 180, 280 denkbar, bei
der der Vergleichswert der Vergleichseinrichtung 180, 280 und der
Startwert des Zählers 170, 270 von
den erwähnten
Werten abweichende, vorbestimmte oder beeinflussbare Werte aufweist.
-
So
ist es durchaus denkbar, dass beispielsweise der Zähler 170, 270 mit
einem Startwert von 40 initialisiert wird, der Zähler jeweils bei einem Passieren
eines Bytes des Datenausgangs 100b, 200b um 8
inkrementiert wird und die Vergleichseinrichtung 180, 280 bei
einem Vergleichswert von 64 ein Alarmsignal ausgibt.
-
Grundsätzlich ist
es darüber
hinaus auch denkbar, dass ein fester, vorbestimmter Vergleichswert
im Rahmen der UART 100, 200 zum Einsatz kommt,
dass also nicht der Vergleichswert beispielsweise durch eine entsprechende
Programmierung der CPU 120 verändert werden kann. Entsprechend ist
es auch denkbar, dass ein fester, vorbestimmter Startwert zum Einsatz
kommt, dass also der Startwert nicht beispielsweise durch die CPU 120 geändert werden
kann. Hierdurch ergibt sich die Möglichkeit, mit nur einer vergleichsweise
einfachen und beschränkten Änderung
des Layouts durch Einführung eines
erfindungsgemäß modifizierten
UART 100, 200 die Sicherheit Angriffen gegenüber von
Security-Controllern 110 zu verbessern. Eine solche „Nachrüstung", also ein Tausch
eines herkömmlichen UART
gegen einen modifizierten, erfindungsgemäßen UART 100, 200 ist
prinzipiell in alle Security-Controller denkbar und kann kostengünstig implementiert
werden, so dass sich auch für
günstige,
im unteren Preissegment angesiedelte Security-Controller 110 durch
eine erfindungsgemäße Datentransfereinrichtung
entscheidend verbessert werden kann.
-
Abhängig von
den Gegebenheiten kann das erfindungsgemäße Verfahren zum Senden von
an einem Dateneingang eingehenden Daten über einen Datenausgang in Hardware
oder in Software implementiert werden. Die Implementation kann auf
einem digitalen Speichermedium insbesondere einer Diskette, einer
CD oder einer DVD mit elektronisch auslesbaren Steuersignalen erfolgen,
die so mit einem programmierbaren Computersystem zusammenwirken
können,
dass das entsprechende Verfahren ausgeführt wird. Allgemein besteht
die Erfindung somit auch in einem Computer-Programm-Produkt mit
auf einem maschinen lesbaren Träger
gespeichertem Programmcode zur Durchführung des erfindungsgemäßen Verfahrens,
wenn das Computer-Programm-Produkt
auf einem Rechner abläuft.
In anderen Worten ausgedrückt
kann die Erfindung somit als ein Computer-Programm mit einem Programmcode zur
Durchführung
des Verfahrens realisiert werden, wenn das Computer-Programm auf
einem Computer abläuft.
-
- 100
- UART
- 110
- Security-Controller
- 120
- CPU
- 130
- Speicher
- 140
- Bus
- 150
- externer
Anschluss
- 160
- Datensendeeinrichtung
- 170
- Zähler
- 180
- Vergleichseinrichtung
- 200
- UART
- 270
- Zähler
- 280
- Vergleichseinrichtung
- 290
- Bereitstellungseinrichtung