-
Die
Erfindung betrifft eine integrierte Schaltungsanordnung mit einem
Eingang, einem Ausgang, zumindest einem Schaltungsteil, der ausgebildet
ist, einen Funktionsselbsttest zu durchlaufen und Testergebnisse
des Funktionsselbsttests auszugeben, und einer Testeinheit, die
an den Eingang und den Ausgang gekoppelt ist und über Testleitungen
derart an den zumindest einen Schaltungsteil gekoppelt ist, dass
die Testergebnisse eingangsseitig anliegen. Die Testeinheit ist
ausgebildet, wenn am Eingang ein Startsignal anliegt, den Funktionsselbsttest
zu starten und die Testergebnisse am Ausgang auszugeben und/oder
die anliegenden Testergebnisse auszuwerten, ob sie mit vorgegeben
Werten in einem vorbestimmten Zusammenhang stehen, und das Testergebnis
anzeigende Daten am Ausgang auszugeben.
-
Chipkarten
zur Speicherung sicherheitsrelevanter oder geldwerter Daten haben
eine große
Verbreitung gefunden. Sie können
als Zugangsschlüssel eingesetzt
werden. Weitere Einsatzbereiche sind Anwendungen als Telefonkarten,
elektronische Fahrkarten oder Geldkarten. Die sensiblen Daten sind
zumindest im Fall geldwerter Daten veränderbar, beispielsweise wenn
sich das Guthaben auf einer Telefonkarte beim Telefonieren verringert.
Die Speicherung und Verarbeitung der sensiblen Daten ermöglicht ein
in die Chipkarte eingesetztes Chipmodul mit einer integrierten Schaltungsanordnung,
die üblicherweise
als Chip ausgebildet ist.
-
Die
Produktion solch eines Chips ist ein hoch technisierter Vorgang,
bei dem nicht ausgeschlossen werden kann, dass einige Chips nach
der Produktion nicht funktionieren. Deshalb werden die Chips nach der
Produktion üblicherweise
getestet, wobei zwischen einem möglichst
umfassenden Test und dem damit verbundenen Zeitaufwand abzuwägen ist.
-
Im
Rahmen eines solchen Tests werden an einen Schaltungseingang ein
Startsignal zum Starten des Test und üblicherweise Testsignale zur
Initialisierung von Schaltungsteilen zugeführt. Die von den getesteten
Schaltungsteilen generierten Ausgangssignale werden mit zu erwartenden
Ergebnissen einer fehlerfrei funktionierenden Schaltungsanordnung verglichen.
Ein Unterschied lässt
auf einen Fehler der Schaltungsanordnung schließen. Das Ergebnis der Testsignalauswertung
oder die ausgewerteten beziehungsweise aufbereiteten Testsignale
werden an einem Ausgang der Schaltungsanordnung bereitgestellt.
Anhand der ausgegebenen Daten kann auf die Funktionsfähigkeit
der Schaltungsanordnung geschlossen werden. Schadhafte Schaltungsanordnungen
werden ausgesondert oder gegebenenfalls repariert.
-
Eine
mögliche
Ausgestaltung solch eines Funktionstests ist der so genannte „build
in self test" (BIST)
oder eingebaute Selbsttest. Die zu testende Schaltungsanordnung
umfasst eine zusätzliche
Testlogik, die so genannte BIST-Steuerung, um beispielsweise einen
Speicher der Schaltungsanordnung zu testen. Nach dem Starten des
Tests durch ein Startsignal erfolgt ein mehrfaches Schreiben und
Lesen eines oder mehrerer Datenwörter
in den beziehungsweise aus dem Speicher sowie ein Vergleich des
gelesenen Datenwortes mit dem zuvor geschriebenen. Zeigt der Vergleich
einen Unterschied auf, ist der Speicher, oder die Testlogik, defekt.
Die Ergebnisse können
durch die BIST-Steuerung derart aufbereitet werden, dass ein einzelnes
Statusbit ausgegeben wird, das lediglich anzeigt, ob der Test erfolgreich oder
nicht erfolgreich durchgelaufen ist. Selbstverständlich ist es auch denkbar,
mit dem build in self test weitere Schaltungsteile oder die Schaltung
als solches zu testen.
-
Bei
einer späteren
Verwendung des Chips in der Chipkarte können Angriffe nicht ausgeschlossen werden.
Die Angriffe auf die sensiblen Daten des Chips erfolgen beispielsweise
durch so genanntes „Probing" oder „Forcing". Beim Probing werden
die innerhalb des Chipmoduls übertragenen
Daten mittels feiner Nadeln abgegriffen und ausgewertet. Beim Forcing
erfolgt in ähnlicher
Weise ein Zugriff auf die Daten. Hierbei wird versucht, durch das
Zuführen fremder
Daten die Datenverarbeitung des Chips gezielt zu manipulieren, um
beispielsweise Kenntnis über
dessen Funktionsweise, dessen Sicherheitsmechanismen oder dessen
sensible Daten zu erlangen. Eine Übersicht über solche physikalischen Angriffe findet
sich in dem Artikel „Renaissance
der physikalischen Angriffe",
Cardforum, 10/2002 von M. Janke und P. Laackmann.
-
Solche
physikalische Angriffe erfolgen beispielsweise mit einem so genannten
FIB-Gerät
(kurz für: „focus
iron beam"). Mittels
dieser Geräte
lassen sich die integrierten Schaltungen auf dem Chipmodul zielgerichtet
manipulieren. Durch Aufdampfen von Gasen auf einen eng begrenzten
Bereich lassen sich abdeckende oder schützende Schichten der integrierten
Schaltung gezielt wegätzen.
Des Weiteren erlauben diese Geräte
auch Isolatoren in Leiterbahnen der zu untersuchenden Schaltung
einzufügen oder
zusätzliche
Leitungen aufzubringen. Dadurch erfolgt eine Umverdrahtung der zu
untersuchenden Schaltung im mikroskopischen Maßstab.
-
Maßnahmen
gegen solche Angriffe umfassen beispielsweise so genannte Dummyleitungen, die
zusätzlich
zur eigentlichen Schaltungsanordnung vorgesehen sind. Hierbei handelt
es sich um Leitungen ohne Funktionen innerhalb der eigentlichen Schaltung,
die in zunächst
freien Bereichen der Schaltungsanordnung angeordnet werden. Dummyleitungen
sollen den Angreifer über
den eigentlichen Aufbau der Schaltung verwirren und hinsichtlich
der Schaltungsfunktionalität
täuschen.
Durch geeignete Werkzeuge zur Schaltungsanalyse lassen sich Dummyleitungen
relativ leicht detektieren und, wenn es sich um passive, das heißt nicht
signalführende
Leitungen handelt, leicht umgehen beziehungsweise durchtrennen.
-
In
einer Weiterentwicklung werden die Dummyleitungen mit einer konstanten
Spannung beaufschlagt, sodass zumindest die Durchtrennung dieser Dummyleitungen
detektiert wird. Auch dieser Schutzmechanismus lässt sich relativ leicht umgehen,
wenn die Leitungen ohne Beeinflussung der angelegten Spannung umverdrahtet
werden, um Zugriff zu den Leitungen der darunter angeordneten Schaltungsebenen
zu erlangen.
-
Ein
weiterer Schutz gegen physikalische Angriffe ist ein so genanntes „active
shield" oder aktives Schutzschild.
Hierbei handelt es sich um eine Vielzahl, beispielsweise parallel
verlaufender Leitungen, die in einer obersten Schaltungsebene ähnlich einem feinen
Abdeckgitter angeordnet sind. Diese Leitungen werden mit Zufallszahlenfolgen
beaufschlagt, die durch eine geeignete Schaltungseinheit hinsichtlich eventueller
Veränderungen
der Zufallsfolgen detektiert werden. Eine Veränderung lässt auf einen Angriff schließen. Nachteil
solch eines aktiven Schutzschildes ist der damit verbundene erheb liche
schaltungstechnische Aufwand, insbesondere für den Zufallszahlengenerator
und die detektierende Schaltungseinheit.
-
In
DE 102 23 176 B3 ist
eine Weiterentwicklung des aktiven Schutzschildes für sicherheitskritische
Schaltungskomponenten beschrieben mit in einer obersten Schaltungsebene über die
sicherheitskritischen Schaltungskomponenten verlaufenden Datenleitungen
für zu
verarbeitende Daten. Über
die Datenleitungen können
auch Testdaten eingespeist werden, die in einer Empfangseinrichtung
hinsichtlich ihrer Übereinstimmung
mit den eingespeisten Testdaten verglichen werden.
-
Es
stellt sich daher die Aufgabe, einen effektiven und einfacheren
Schutz gegen physikalische Angriffe auf integrierte Schaltungsanordnungen
bereitzustellen. Des Weiteren soll ein entsprechendes Verfahren
zum Schutz einer integrierten Schaltungsanordnungen angeben werden.
-
Die
Aufgabe wird durch eine Schaltungsanordnung der eingangs genannten
Art gelöst,
die erfindungsgemäß dadurch
gekennzeichnet ist, dass die Testeinheit ferner ausgebildet ist,
den Funktionsselbsttest schaltungsintern zu starten und die anliegende
Testergebnisse auszuwerten, ob sie mit den vorgegeben Werten im
vorbestimmten Zusammenhang stehen.
-
Der
Vorteil dieser Anordnung ist, dass zusätzlicher schaltungstechnischer
Aufwand zur Detektion von physikalischen Angriffen und die damit
einhergehenden Kosten durch die Mehrfachnutzung der Testeinheit
vermieden werden, indem der Funktionsselbsttest nicht mehr nur einmalig
zur Erkennung von Produktionsfehlern durchgeführt wird, sondern auch während des
späteren
Betriebs der Schaltungsanordnung, um aus einem fehlerhafter Testdurchlauf auf
physikalische Manipulationsversuche zu schließen.
-
Vorteilhafterweise
ist die Testeinheit derart an eine Alarmeinheit gekoppelt ist, dass
die Alarmeinheit bei einem schaltungsintern gestarteten Funktionsselbsttest
eine Alarmreaktion der Schaltungsanordnung anstößt, wenn die an der Testeinheit anliegenden
Testergebnisse nicht mit den vorgegeben Werten im vorbestimmten
Zusammenhang stehen. Dadurch kann detektierten Manipulationsversuchen
durch geeignete Abwehrmaßnahmen
begegnet werden.
-
Vorteilhafterweise
wird bei jedem Einschalten der Schaltungsanordnung durch einen schaltungsintern
gestarteten Testdurchlauf die Schaltungsanordnung auf physikalische
Abgriffe hin überprüft. Unter
Einschalten ist das Anlegen einer Spannungsversorgung und/oder eines
Startsignals an die Schaltungsanordnung zu verstehen. Da diese Funktions-
oder Selbsttests üblicherweise
so konzipiert sind, dass ein möglichst
großer
Teil oder nahezu die Gesamtheit der Schaltungsanordnung mit geringem Zeitaufwand überprüft wird,
hält sich
der zusätzliche Zeitbedarf
beim Hochfahren der Schaltungsanordnung, insbesondere angesichts
des dadurch erreichbaren Schutzes, in Grenzen.
-
Vorteilhafterweise
sind die Testleitungen in einer oberen Schaltungsebene der Schaltungsanordnung,
die mehrere Schaltungsebenen umfasst, angeordnet, um den Zugriff
auf darunter angeordnete Schaltungsteile zu erschweren. Dadurch
wird auch visuelles Ausspionieren der Schaltungsfunktion erheblich
erschwert.
-
Durch
die Beaufschlagung der Testleitungen mit den Testsignalen, die zwischen
der Testeinheit und dem zu testenden Schaltungsteil übertragen werden,
erfüllen
diese die Funktion eines aktiven Schutzschildes. Des Weiteren ist
die Identifizierung der als aktives Schutzschild wirkenden Testleitungen erschwert,
da nicht ersichtlich ist, dass sie nicht nur zum Test der Schaltungsanordnung
im Anschluss der Produktion dienen, sondern danach während des Schaltungsbetriebes
zur aktiven Detektion physikalischer Angriffe.
-
Die
Anordnung der Testleitungen erfolgt vorteilhafterweise derart, dass
sie sich über
einen möglichst
großen
Bereich der Schaltungsanordnung erstrecken und somit den Zugriff
auf darunter liegende Schaltungsebenen erschweren. Die Testleitungen müssen nicht
notwendigerweise nur in der obersten Schaltungsebene angeordnet
sein, sondern sie können
zusätzlich
oder alternativ in tieferen Schaltungsebenen, beispielsweise direkt
oberhalb eines besonders zu schützenden
Schaltungsteils, angeordnet sein. Der Schutz kann sich auch nur
auf einzelne, als besonders sensibel eingestufte Bereiche der Schaltungsanordnung,
wie beispielsweise Bereiche zur Verwaltung eines kryptographischen
Schlüssels,
erstrecken. Die Testleitungen können
mäanderförmig oder
parallel über
den schutzbedürftigen
Bereichen oder der gesamten Schaltungsanordnung angeordnet sein,
um potentielle Angriffspunkte auf die darunter angeordneten Schaltungsteile
möglichst
gut zu bedecken.
-
In
einer vorteilhaften Weiterbildung sind in die Testleitungen an Speicherelemente,
beispielsweise Flip-Flops, gekoppelt, die mit dem zu testenden Schaltungsteil
derart gekoppelt sind, dass während und/oder
nach der Durchführung
des Funktionsselbsttests in den Speicherelementen auswertbare Ergebnisse
des Testdurchlauf bereitgestellt werden. Der zu tes tende Schaltungsteil
kann auch über
ein Register an die Testleitungen gekoppelt sei. In diesem Fall
erfolgt die Kommunikation zwischen der Testeinheit und dem zu testenden
Schaltungsteil über das
Register, in dem Startwerte von der Testeinheit bereitgestellt werden
und die Ergebnisse vom zu testenden Schaltungsteil bereitgestellt
werden. Die Übertragung
der Startwerte und Ergebnisse zum beziehungsweise vom Register erfolgt über die
Testleitungen.
-
In
einer vorteilhaften Weiterbildung der integrierten Schaltungsanordnung
wird der Funktionsselbsttest automatisch bei Einschalten der Schaltung gestartet.
Dadurch lassen sich insbesondere Forcing-Angriffe leichter detektieren.
-
Das
erfindungsgemäße Verfahren
zum Schutz einer Schaltungsanordnung umfasst einen ersten und einen
zweiten Betriebsmodus, wobei der erste Betriebsmodus umfasst:
- – Anlegen
eines Startsignal an einen Eingang der Schaltungsanordnung, um einen
Funktionsselbsttest zu starten,
- – Durchführen des
Funktionsselbsttests zumindest eines Schaltungsteils der integrierten
Schaltungsanordnung,
- – Übertragung
von Testergebnissen des Funktionsselbsttests an eine Testeinheit,
- – Ausgeben
der Testergebnisse und/oder Ausgeben von das Testergebnis anzeigenden
Daten;
und der zweite Betriebsmodus umfasst:
- – schaltungsinternes
Starten des Funktionsselbsttests,
- – Durchführen des
Funktionsselbsttests zumindest eines Schaltungsteils der integrierten
Schaltungsanordnung,
- – Übertragung
von Testergebnissen des Funktionsselbsttests an eine Testeinheit,
- – Auswerten
der Testergebnisse, ob sie mit den vorgegeben Werten im vorbestimmten
Zusammenhang stehen.
-
Vorteil
dieses Verfahrens ist, dass der implementierte Funktionsselbsttest
nicht nur zur Erkennung von Produktionsfehlern sondern auch von
Angriffen verwendet wird, sodass der Angriffschutz mit geringem
zusätzlichem
Aufwand einhergeht.
-
Vorteilhafterweise
wird im zweiten Betriebsmodus eine Alarmreaktion der Schaltungsanordnung durchgeführt, wenn
die Testergebnisse nicht mit den vorgegebenen Werten in dem vorbestimmten
Zusammenhang stehen, um Angriffen aktiv zu begegnen.
-
Vorteilhafterweise
stellt die Testeinheit Startwerte für den Funktionsselbsttest bereit,
die variierbar sind, um die Sicherheit zu erhöhen.
-
Durch
einen Funktionstest, der einen möglichst
großen
der Teil der Schaltungsanordnung testet lässt sich ein nahezu umfassender
Schutz gegen physikalische Angriffe erreichen, der sich auf nahezu gesamte
Schaltungsanordnung erstreckt.
-
Weitere
vorteilhafte Ausgestaltungen der Erfindung sind in den untergeordneten
Patentansprüchen
angegeben.
-
Nachfolgend
wird die Erfindung unter Bezugnahme auf die Zeichnung anhand von
Ausführungsbeispielen
erklärt.
-
Es
zeigen:
-
1 ein
erstes Ausführungsbeispiel
der integrierten Schaltungsanordnung,
-
2 ein
zweites Ausführungsbeispiel
der integrierten Schaltungsanordnung und
-
3 ein
drittes Ausführungsbeispiel
der integrierten Schaltungsanordnung.
-
1 zeigt
ein Blockschaltbild eines ersten Ausführungsbeispiels der Schaltungsanordnung
mit mehreren Schaltungsteilen 3, 4, 5, 6.
Die Schaltungsteile 3, 4, 5, 6 können beispielsweise
als Speicher 3, als Rechenwerk 4, als Peripherieeinrichtung 5,
und als Festwertspeicherelement zur Bereitstellung eines Schlüssels 6,
ausgebildet sein.
-
Die
Schaltungsanordnung umfasst ferner eine Testeinheit 1 und
ein Register 2, das dem Speicher 3 über Verbindungen 231, 232 vorgeschaltet
ist. Die Testeinheit 1 ist an einen Eingang 8 und
einen Eingang 9 gekoppelt. Der Eingang 8 und 9 können als
lediglich für
den Produktionstest vorgesehener Eingang beziehungsweise Ausgang
ausgebildet sein. Es ist auch denkbar, dass als derartiger Eingang
beziehungsweise Ausgang zur Kommunikation mit der Karte während des
normalen Betriebs vorgesehene Kontaktflächen dienen. Ferner ist die
Testeinheit 1 über
Testleitungen 10, 11, 12 mit dem Register 2 gekoppelt.
Weiterhin ist eine Alarmeinheit 7 vorgesehen, die zwischen
die Testeinheit 1 und das Rechenwerk 4 gekoppelt
ist. Die A larmeinheit 7 ist ausgebildet, auf das Rechenwerk 4 zuzugreifen
und eine Alarmreaktion zu initiieren. Die Alarmreaktion kann die
Ausgabe eines Alarmsignals umfassen, an das verschiedene Schaltungsteile
derart gekoppelt sind, dass bei Ausgabe des Alarmsignals eine geeignete Alarmreaktion
der Schaltungsanordnung abläuft.
-
Bei
dem Funktionsselbsttest, der beim Hersteller zur Detektion eventueller
Schäden
oder Fehler der Schaltungsanordnung durchgeführt wird, wird ein Startsignal
an den Eingang 8 gelegt. Startwerte zur Initialisierung
der zu testenden Schaltungsanordnung können ebenfalls über diesen
Eingang oder weitere, dafür
vorgesehene Eingänge
zugeführt
werden. Basierend auf diesen Startwerten erfolgt der Funktionsselbsttest
des als Speicher ausgebildeten Schaltungsteils 3. Bei der
Durchführung
des Funktionsselbsttests können
beispielsweise die Startwerte aus dem Register 2 an verschiedene
Stellen des Speichers 3 geschrieben werden, wieder ausgelesen werden,
und nach dem Auslesen mit den Startwerten verglichen werden. Weitere
Testmöglichkeiten
umfassen die Interaktionen mehrerer Schaltungsteile, beispielsweise
des Speichers 3 in Kombination mit dem Rechenwerk 4 oder
der Peripherieeinrichtung 5, um so die Schaltungsanordnung
weitestgehend zu testen.
-
Es
ist auch denkbar, dass die Testeinheit 1 über die
Testleitungen an mehrere der Schaltungsteile 3, 4, 5, 6 gekoppelt
ist.
-
Die
Ergebnisse des Funktionsselbsttests werden in das Register 2 geschrieben
und von dort aus über
die Testleitungen 10, 11, 12 an die Testeinheit 1 übertragen.
Die Testeinheit 1 vergleicht, ob die anliegenden Werte
mit vorgegebenen Werten, die einem fehlerfreien Testdurchlauf basierend
auf dem über mittelten
Startwert entsprechen, übereinstimmen.
Wenn dies der Fall ist, so ist davon auszugehen, dass die Schaltungsanordnung
nicht schadhaft ist. Die Testeinheit 1 gibt das Testergebnis
anzeigende Daten über
einen Ausgang 9 der Schaltungsanordnung aus. Das Ergebnis
kann in Form eines einzelnen Bits ausgegeben werden, das lediglich
anzeigt, ob der Test fehlerfrei durchgelaufen ist. Alternativ ist
auch denkbar, dass die Testergebnisse an den Ausgang 9 gekoppelt
und unverändert
oder in durch die Testeinheit aufbereiteter Form ausgegeben werden.
Anhand der Testergebnisse oder der aufbereiteten Testergebnisse
kann beispielsweise eine externe Auswertungseinrichtung aus der
Art der Fehler beim Testdurchlauf auf die Fehler in der Schaltungsanordnung
schließen.
Abhängig
von den erkannten Fehlern oder Schäden der Schaltungsanordnung
kann diese aussortiert oder repariert werden.
-
Zur
Detektion von Angriffen wird der Funktionstest intern gestartet,
das heißt,
ohne dass das Startsignal am Eingang anliegt. Der Funktionsselbsttest
wird beim Einschalten der Schaltungsanordnung durchgeführt, wobei
unter Einschalten auch zu verstehen ist, dass die Schaltungsanordnung
derart mit Energie versorgt wird, dass die Schaltungsanordnung betriebsbereit
ist. Zum Start des Funktionsselbsttests werden von der Testeinheit 1 über die Testleitungen 10, 11, 12 Startwerte
in das Register 2 geladen. Diese Startwerte können stets
dieselben sein, es können
Zufallswerte sein oder sie können
einer Wertetabelle oder einer Zustandsmaschine, auch als so genannte
State-Machine bezeichnet, entnommen werden. Der eigentliche Funktionsselbsttest wird
wie oben bereits beschrieben durchgeführt.
-
Die
Ergebnisse des Funktionsselbsttests werden in das Register 2 geschrieben
und von dort aus über
die Testleitungen 10, 11, 12 an die Testeinheit 1 übertragen.
Die Testeinheit 1 vergleicht, ob die anliegenden Werte
mit vorgegebenen Werten, die einen fehlerfreien Testdurchlauf basierend
auf dem übermittelten
Startwert entsprechen, übereinstimmen.
Wenn dieses der Fall ist, so ist davon auszugehen, dass der Test
fehlerfrei durchgelaufen ist und die Funktion der getesteten Schaltungsteile
beziehungsweise der gesamten Schaltungsanordnung ohne Hinweis auf
manipulative Eingriffe fehlerfrei funktioniert. Unterscheiden sich
die Ergebnisse des Funktionsselbsttests von den vorgegebenen Ergebnissen
so ist auf einen Fehler in der Schaltungsanordnung oder auf einen
Angriff zu schließen.
Da die Fehler der Schaltungsanordnung bereits durch den Funktionsselbsttest
des Herstellers erkannt worden sein sollten, ist in diesem Fall
vielmehr davon auszugehen, dass ein Angriff erfolgt. Der Angriff
kann auf den zu testenden Schaltungsteil selbst oder einen damit
interagierenden Schaltungsteil erfolgen, und dazu führen, dass
der Funktionsselbsttest nicht mehr fehlerfrei durchläuft. Der
Angriff kann aber auch auf die Testleitungen oder die Leitungen
zwischen dem Register 2 und dem zu testenden Schaltungsteil 3 erfolgen
und dazu führen,
dass die Startwerte beziehungsweise Ergebnisse des Selbsttest verändert werden,
sodass die Testeinheit zwischen dem ihr zugeführten Ergebnis und dem vorgegebenen
Ergebnis einen Unterschied detektiert, was als fehlerhafter Testdurchlauf
auf Grund eines Angriffs zu interpretieren ist.
-
Die
Testeinheit 1 detektiert diesen Fehler und ist derart mit
der Alarmeinheit 7 gekoppelt, dass infolgedessen in den
Funktionsablauf der Schaltungsanordnung eingegriffen wird. Dieses
ist in der 1 beispielhaft durch die Verbindung 74 zwischen
der Alarmeinheit 7 und dem Rechenwerk 4 dargestellt.
-
Es
sei bemerkt, dass die Ergebnisse des schaltungsintern gestarteten
Funktionsselbsttests vorteilhafterweise nicht an den Ausgang 9 ausgegeben
werden, um den Angreifer keine Rückschlüsse auf
die Art der Angriffsdetektion zu liefern.
-
Die
Alarmreaktion kann vielfältige
Maßnahmen
umfassen. Beispielsweise kann die Schaltung heruntergefahren werden.
Es kann ein Neustart, ein so genanntes „Reset", durchgeführt werden, oder es können gezielt
Schaltungsteile abgeschaltet werden. Letzteres Vorgehen bietet sich
an, wenn die Testeinheit geeignet ist, anhand des Fehlers auf die
manipulierte Testleitung und den angegriffenen Schaltungsteil zu
schließen.
Eine weitere Gegenmaßnahme
ist ein so genanntes „sense
reset", bei dem
die gesamte Schaltung blockiert wird und der Funktionsablauf aller
Schaltungsteile gestoppt wird. Diese Abwehrmaßnahmen bezwecken, dass die
Funktionalität
der Schaltungsanordnung wegen des vermuteten Angriffs zumindest
stark eingeschränkt
wird, sodass der Angreifer, obgleich er Zugriff zu signalführenden
Leitungen hat, nicht weitere Informationen aus dem Funktionsablauf
der Schaltungsanordnung gewinnen kann.
-
2 zeigt
das Blockschaltbild eines zweiten Ausführungsbeispiels der integrierten
Schaltungsanordnung. Im Folgenden wird vornehmlich auf die Unterschiede
zum ersten Ausführungsbeispiel eingegangen.
Zur Vermeidung von Wiederholungen erfolgt keine mehrfache Beschreibung übereinstimmender
Anordnungen.
-
Auch
die Schaltungsanordnung in 2 umfasst
die Schaltungsteile 3, 4, 5, 6,
die ausgebildet sein können
wie im Ausführungsbeispiel
in 1. Auch in diesem Ausführungsbeispiel ist die Testeinheit 1 mit
dem Eingang 8, dem Ausgang 9 und mit einem Register 2 über Testleitungen 10, 11, 12 gekoppelt.
Im Gegensatz zum vorherigen Ausführungsbeispiel
sind die Testleitungen 10, 11, 12 nicht
direkt zwischen der Testeinheit 1 und dem Register 2 angeordnet.
Sie sind vielmehr dermaßen
angeordnet, dass sie über
die Verbindungsleitungen 231, 345, 34, 46 zwischen
den verschiedenen Schaltungsteilen 3, 4, 5, 6 verlaufen.
Des Weiteren sind zusätzliche
Testleitungen 13 vorgesehen, um dadurch einen größeren Bereich
der Schaltungsanordnung schützen
zu können.
-
Die
Testleitungen 10, 11, 12, 13 erstrecken sich über einen
möglichst
großen
Bereich der integrierten Schaltungsanordnung, um einen möglichst umfassenden
Zugriffsschutz zu gewähren.
Besonders sensible Schaltungsteile wie beispielsweise der Schaltungsteil 6,
in dem ein Schlüssel
abgespeichert wird und über
die Verbindung 46 dem Rechenwerk 4 zugeführt wird,
lassen sich durch darüber
angeordnete eng benachbart verlaufende Testleitungen oder durch
darüber
angeordnete eng benachbart verlaufende Bereiche einer der Testleitungen
schützen.
In diesem Fall ist die Verbindungsleitung 10 zum Schutz der
Verbindung 46 mäanderförmig darüber angeordnet.
Die Testleitungen 10, 11, 12, 13 können selbstverständlich auch über den
Schaltungsteilen 3, 4, 5, 6 angeordnet
sein und mäanderförmig oder
in dichtem Abstand parallel verlaufend ausgebildet sein.
-
Des
Weiteren umfasst die Schaltungsanordnung 2 Speicherelemente 8, 9 die
beispielsweise als Flip-Flops ausgebildet sein können. Diese Speicherelemente 8, 9 sind
an die Testleitungen 12, 13 gekoppelt, sodass
diese während
des Testdurchlaufs mit den zu testenden Schaltungsteilen interagieren und/oder
Zwischenergebnisse des Funktionsselbsttest speichern.
-
Vorteilhafterweise
sind die Testleitungen oder ein Teil dieser in der obersten Schaltungsebene ausgebildet,
um bei einem physikalischen Angriff als aktives Schutzschild die
darunter liegenden Leitungen beziehungsweise Schaltungsteile zu
schützen. Es
ist natürlich
auch denkbar, dass darüber
hinaus oder alternativ in darunter liegenden Schichten besonders
sensible Teile geschützt
werden.
-
3 zeigt
in perspektivischer Darstellung schematisch ein drittes Ausführungsbeispiel
der integrierten Schaltungsanordnung. Auf Grund der Übersichtlichkeit
ist eine einfach aufgebaute Schaltungsanordnung mit lediglich zwei
Schaltungsebenen dargestellt. Selbstverständlich sind auch wesentlich kompliziertere
Schaltungsanordnungen mit einer Vielzahl von Schaltungsebenen denkbar.
-
Die
Schaltungsteile 3, 4 ebenso wie das Register 2 und
die Testeinheit 1 sind in einer unteren Ebene angeordnet.
Das Register ist über
die Leitungen 231, 232, 233 und 241 an
die Schaltungsteile 3, 4 gekoppelt. Die Testeinheit
ist über
in dieser Ebene verlaufende Leitungen 10, 11, 12 an
das Register gekoppelt. Über
die an die Testeinheit 1 gekoppelte Alarmeinheit 7 ist
die Initiierung der Alarmreaktion möglich. Die Testeinheit 1 ist
mit dem Eingang 8 und dem Ausgang 9 gekoppelt,
die beispielhaft in der obersten Schaltungsebene angeordnet sind.
-
Des
Weiteren umfasst die Schaltungsanordnung in einer darüber angeordneten
Ebene Testleitungen 13, 14, 15, 16,
mittels derer die Testeinheit 1 an die Schaltungsteile 3 und 4 gekoppelt
ist. Diese Testleitungen 13, 14, 15, 16 sind
bereichsweise parallel oder mäanderförmig angeordnet
und erstrecken sich über
die gesamte flächige
Ausdehnung der Schaltungsan ordnung, um die darunter liegenden Schaltungsteile
vor physikalischen Angriffen zu schützen. Der Zugriff auf die untere
Schaltungsebene ist ohne Umverdrahtung oder Entfernung der oberen Schaltungsschicht
nicht möglich.
Beide Vorgehensweisen würden
einen fehlerhaften Testdurchlauf nach sich ziehen.
-
Das
Design solch einer geschützten
Schaltungsanordnung kann dahingehend optimiert werden, dass mittels
eines speziellen Programmierwerkzeugs zum Entwurf der eigentlichen
Schaltungsanordnung zusätzliche
Testleitungen hinzugefügt
werden, die zuvor vom Anwender als besonders sensibel gekennzeichnete
Bereiche gezielt schützen
und/oder in einer oberen Schaltungsschicht angeordnet sind.
-
Die
Anordnung und das Design der Testleitungen kann durch das Programmierwerkzeug
derart erfolgen, dass beispielsweise der Schutzschildcharakter durch
Testleitungen erreicht wird, die sich in der obersten Leitungsschicht über einen
möglichst weiten
Bereich der Schaltungsanordnung flächendeckend erstrecken, indem
diese Testleitungen ähnlich einem
Abdeckgitter über
der eigentlichen Schaltung angeordnet sind. Des Weiteren sollten
die einzelnen Testleitungen nicht zu breit ausgestaltet sein, da
in diesem Fall Teile der entsprechenden Leitungen entfernt werden
könnten,
um auf tiefere Leitungsschichten zuzugreifen, ohne die Leitung zu
durchtrennen, was die Detektion eines solches Angriff zumindest
erschweren würde.
Darüber
hinaus lassen breite Testleitungen bei einen visuellen Inspektion
auch auf die Schutzfunktion schließen. Alternativ oder zusätzlich ist
es auch denkbar, dass die Struktur und Anordnungsweise der Testleitungen ähnlich den übrigen Leitungen
der Schaltungsanordnung ist, sodass der eigentlichen Aufbau der
Schaltungsanordnung nicht unmittelbar zu erkennen ist.
-
Es
sei bemerkt, dass die in den 1, 2 und 3 dargestellten
Ausführungsbeispiele
miteinander kombinierbar sind.
-
- 1
- Testeinheit
- 2,
8, 9
- Register,
Speicherelement
- 3,
4, 5, 6
- Schaltungsteile
- 7
- Alarmeinheit
- 8
- Eingang
- 9
- Ausgang
- 17,
34, 74, 231, 232, 233, 241, 345
- Leitungen
- 10,
11, 12, 13, 14, 15, 16
- Testleitungen