DE102009033211A1 - Chipkarte mit Überwachung der Integrität auf Softwarebasis - Google Patents

Chipkarte mit Überwachung der Integrität auf Softwarebasis Download PDF

Info

Publication number
DE102009033211A1
DE102009033211A1 DE200910033211 DE102009033211A DE102009033211A1 DE 102009033211 A1 DE102009033211 A1 DE 102009033211A1 DE 200910033211 DE200910033211 DE 200910033211 DE 102009033211 A DE102009033211 A DE 102009033211A DE 102009033211 A1 DE102009033211 A1 DE 102009033211A1
Authority
DE
Germany
Prior art keywords
software
countermeasures
data
chip card
measures
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
DE200910033211
Other languages
English (en)
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Austria Card Plastikkarten und Ausweissysteme GmbH
Original Assignee
Austria Card Plastikkarten und Ausweissysteme GmbH
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Austria Card Plastikkarten und Ausweissysteme GmbH filed Critical Austria Card Plastikkarten und Ausweissysteme GmbH
Priority to DE200910033211 priority Critical patent/DE102009033211A1/de
Priority to AT11662010A priority patent/AT508649A2/de
Publication of DE102009033211A1 publication Critical patent/DE102009033211A1/de
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/77Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in smart cards
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/78Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Storage Device Security (AREA)

Abstract

Chipkarte mit Maßnahmen zur Überwachung der Datenintegrität und Maßnahmen zur Gewährleistung der Ablaufintegrität auf Softwarebasis, wobei diese Maßnahmen automatisch durch ein Software-Modul erzeugt werden, wobei diese durch Parameter gesteuert wird und in eine oder alle Komponenten der Toolchain integriert ist oder eingreift.

Description

  • Gegenstand der Erfindung ist eine Chipkarte mit Maßnahmen zur Überwachung der Datenintegrität der auf der Chipkarte gespeicherten Daten und Maßnahmen zur Gewährleistung der Ablaufintegrität, wobei diese Maßnahmen in der auf der Chipkarte ablaufenden Software (Betriebssystem und Applikationen) realisiert sind und automatisch bei der Softwareerstellung erzeugt werden.
  • Erfindungsgemäß ist vorgesehen, dass auf der in der Chipkarte implementierten Software (Betriebssystem und Applikationen) Gegenmaßnahmen eingebaut werden müssen, um die Chipkarte gegen äußere Angriffe zu schützen.
  • Solche Angriffe werden Penetrationsversuche genannt, wo im konkreten Fall der Chip der Chipkarte physikalischen und/oder chemischen Prozessen ausgesetzt wird und hierbei versucht wird, gezielt Fehler auf der Karte zu erzeugen (im Folgenden „Fehlerinduktion” auch bekannt unter dem Begriff „fault induction”). Bekannt sind unter anderem Angriffe mit Hilfe von Laserstrahlen, Licht, ionisierender Strahlung und mit Spannungs- und Frequenzveränderungen sowie Stromimpulsen an den Anschlüssen des Chips, sowie physikalische Manipulationen mittels sehr feinen Sonden/Kontakten und chemische Manipulationen.
  • Um solchen Angriffen zu entgegnen ist es im Stand der Technik bekannt, dass man bei der Programmierung der Chipkartensoftware zur Sicherung der Datenintegrität Daten, Adresswerte und Rücksprungadressen mit Prüfsummen oder redundanten Daten versieht und dazu benutzt die Datenintegrität vor und oder nach der Datenverwendung zu überprüfen. Bezüglich der Ablaufintegrität besteht ein weiteres bekanntes Verfahren darin, zum Beispiel die Ausführung von Codes dadurch abzusichern, dass die Abfrage von Bedingungen doppelt (ggf. in komplementärer Weise) ausgeführt wird oder bestimmte Code-Abschnitte redundant vorhanden sind. Eine weitere Möglichkeit besteht darin die Ablaufintegrität dadurch sicherzustellen, dass logische Programmabfolgen (z. B. Unterprogrammaufrufe) durch die Weitergabe zusätzlicher redundanter Informationen auf ihre logische Korrektheit geprüft werden. Weiters ist auch bekannt, dass Daten zunächst geschrieben werden, danach zurück gelesen werden und dann verglichen wird, ob die Daten richtig geschrieben wurden oder nach mathematischen Operationen zusätzlich die inversen Operationen durchgeführt und die Ergebnisse überprüft werden. Weiters kann durch die Dokumentation der Chip-Hardware vorgegeben sein, welche Hardware-Gegenmaßnahmen in bestimmten Fällen zu Aktivieren oder zu Deaktivieren sind.
  • Die Grundidee der vorliegenden Erfindung besteht nun darin, dass man den vorher beschriebenen Sicherungsprozess, gemeint ist die Implementierung der Gegenmaßnahmen in die Chipkartensoftware, automatisiert und durch Parameter steuerbar macht.
  • Bisher war es bei der Programmierung einer solchen Software notwendig auf den speziellen Programmablauf abgestimmte – Sicherungsmechanismen (Gegenmaßnahmen) – sozusagen „von Hand” – einzubauen.
  • Weiterer Nachteil ist, dass bei einer umfangreichen Programmierung von Chipkartensoftware, wie es beim Stand der Technik der Fall ist, ein außerordentlich hoher Programmieraufwand entsteht, dessen Prüfung schwierig ist, der fehleranfällig ist und der einem großen Entwicklungsaufwand führt. Durch die implementierten Gegenmaßnahmen steigen weiters der Speicherbedarf und die Berechnungszeit der Software.
  • Der Erfindung liegt deshalb die Aufgabe zugrunde eine Chipkarte der eingangs genannten Art mit einer Absicherung der Software über Software-Gegenmaßnahmen so weiter zu bilden, dass die Implementierung der Gegenmaßnahmen in der Chipkartensoftware automatisiert und über Parameter steuerbar erfolgt.
  • Zur Lösung der gestellten Aufgabe ist die Erfindung dadurch gekennzeichnet, dass die Gegenmaßnahmen durch ein Software-Modul erzeugt werden, welches in die Toolchain eingreift oder integriert ist.
  • Die Erfindung sieht deshalb eine Chipkarte mit Maßnahmen zur Überwachung der Datenintegrität und Maßnahmen zur Gewährleistung der Ablaufintegrität auf Softwarebasis (Software – Gegenmaßnahmen vor, wobei diese Maßnahmen in der auf der Chipkarte ablaufenden Software und Applikationen realisiert sind, um die Chipkarte gegen äußere Angriffe zu schützen.
  • Solche äußeren Angriffe auf die Chipkarte sind insbesondere
    • • Angriffe mit Hilfe von – Elektromagnetischen Wellen (Laserstrahlen, Licht, ionisierender Strahlung) – Spannungs- und Frequenzveränderungen an den Kontakten des Chips – physikalische Manipulationen des Chips mittels sehr feine Sonden/Kontakten – chemische Manipulationen
  • Das Resultat eines solchen Angriffes ist im Erfolgsfall, dass
    • • der Inhalt einer Speicherzelle (im flüchtigen oder nicht-flüchtigen Speicherbereich) geändert wird oder
    • • der Inhalt eines Prozessor-Registers (eines Haupt- oder Co-Prozessors oder ein spezielles Hardware-Register) geändert wird. Handelt es sich hierbei beispielsweise um den so genannten Programm Counter, welcher den als nächsten auszuführenden Befehl bezeichnet, so wird das Programm an einer anderen Stelle fortgesetzt.
  • Eine solche Veränderung des Inhaltes kann grundsätzlich persistent oder transient sein. Folgende Fälle sind zu unterscheiden:
    • • persistente Veränderung im nicht flüchtigen Speicher: alle nachfolgenden Lese-Zugriffe liefern den geänderten Wert zurück.
    • • Persistente Veränderung im flüchtigen Speicher: alle nachfolgenden Lese-Zugriffe bis zum nächsten Reset des Chips liefern den veränderten Wert zurück (nach dem Reset ist der Inhalt des flüchtigen Speichers im Allgemeinen undefiniert).
    • • Persistente Veränderung eines Prozessor-Registers: alle nachfolgenden Lese-Zugriffe bis zu dem Zeitpunkt an dem ein neuer Wert in das Register geschrieben wird (das kann auch selbsttätig von der Chip-Hardware verursacht werden), liefern den geänderten Wert zurück
    • • Transiente Veränderung einer Speicherzelle oder eines Registers: nur der aktuelle Lese-Zugriff auf die Speicherzelle oder ein Register liefert einen geänderten Wert zurück. Alle nachfolgenden Lese-Zugriffe liefern wieder den korrekten Wert zurück. Dieser Angriff funktioniert im Allgemeinen nur dann, wenn der Angriff exakt zum Zeitpunkt des Lese-Zugriffs ausgeführt wird. Es handelt sich hier um den Angriff mit der derzeit höchsten – da auf realer Hardware am einfachsten ausführbaren – Erfolgsrate.
  • Die derzeit bekannten Angriffe auf reale Hardware haben gemeinsam, dass das Setzen einer Speicherzelle auf einen bestimmten Wert im Allgemeinen sehr schwierig ist, sondern ein zumeist ein – von außen für den Angreifer aufgrund von Speicherverschlüsselungsmechanismen – nicht vorhersehbares Bit-Muster gesetzt wird oder alle Bits der zu verändernden Speicherzelle auf den Wert Null oder alle Bits auf den Wert Eins gesetzt werden.
  • Erfindungsgemäß werden die Gegenmaßnahmen (redundante Daten und Prüfroutinen) von einem Software-Modul erzeugt, insbesondere folgende Gegenmaßnahmen
    • • Versehen der Daten, Adresswerte und Rücksprungadressen mit Prüfsummen oder redundanten Daten und deren Verarbeitung durch Prüfroutinen
    • • Einbringen von redundanten Codeabschnitten (z. B. doppeltes und ggf. komplementäres Abfragen von Bedingungen, Weitergabe redundanter Information bei Unterprogrammaufrufen) zur Sicherung der Ablaufintegrität logischer Programmabfolgen
    • • Einbringen von zusätzlichem Code und Daten zur Erkennung von unbeabsichtigten Sprüngen (z. B. von einem Angreifer induziert) innerhalb des Programmablaufes.
    • • Das Schreiben und nachfolgende Zurücklesen von Daten
    • • Durchführen von mathematisch inversen Operationen und Kontrolle der Ergebnisse
    • • Aktivieren und Deaktivieren von Hardware-Gegenmaßnahmen gemäß den Vorgaben in der Dokumentation der Chip-Hardware
  • Mit der Verwendung eines Software-Moduls besteht der Vorteil, dass dieses automatisch (selbsttätig) arbeitet und der Benutzereingriff nur beim Start und möglicherweise bei der Auslesung und Auswertung der Ergebnisse notwendig ist. Ein solches Software-Modul ist vorteilhaft in die sogenannte Toolchain integriert.
  • Die Toolchain (deutsch: Werkzeugkette) ist ein Gesamtbegriff für die Programmier- und insbesondere Übersetzungswerkzeuge, die in einem Projekt eingesetzt werden um den Source-Code zu Erstellen und in den ablauffähigen Binärcode zu übersetzen. Diese Produkte bilden ein Gesamtsystem oder eine Werkzeugkette, die für die Programmierung von sowohl Anwendungen als auch Betriebssystemen genutzt werden. Der Begriff Toolchain ist ein wichtiger Bestandteil bei der Entwicklung des Linux Kernels, der Entwicklung der BSD und ein Standardtool bei der Entwicklung von Eingebetteten Systemen.
  • Demzufolge versteht man unter einer Toolchain (Toolkette) die gesamte Kette von Softwareentwicklungswerkzeugen, beginnend von der Programmerstellung und Quellkodeverwaltung über den Pre-Prozessor, Compiler, Assembler und den Linker bis hin zum Simulator und Emulator. In manchen Fällen werden die Werkzeuge für die Anforderungs- und Änderungsverwaltung ebenfalls zur Toolchain gezählt.
  • Erfindungsgemäß ist nun vorgesehen, dass man das Softwaremodul zur automatischen Generierung der Gegenmaßnahmen in diese Toolchain einfügt.
  • Es bestehen bei der vorliegenden Erfindung also wesentliche Vorteile gegenüber der manuellen Programmierung der Gegenmaßnahmen. Die Erfindung vermeidet diese aufwendige Programmierung und sieht stattdessen ein Software-Modul vor, welches in die Toolchain (in dem Bereich zwischen dem Source-Code und dem resultierenden Maschinencode) dazwischen geschaltet ist.
  • Hier bestehen besondere Vorteile, denn der Hardware-Hersteller legt dem Verwender der Chipkarte (Softwareentwickler) besondere Sicherungsmaßnahmen auf, wie beispielsweise das Aktivieren und Benutzen von Schutzfunktionen, die in der Chip-Hardware eingebaut sind sowie von Software-Sicherungsmaßnahmen.
  • Hier setzt die Erfindung ein, die vorsieht, dass die Software-Sicherheitsfunktionalität automatisch und über Parameter steuerbar in der Toolchain generiert wird.
  • Es handelt sich also um eine Software-Anwendung, welche in die einzelnen Elemente der Toolchain (insbesondere Pre-Prozessor, Compiler, Linker, Assembler) integriert ist, d. h. um eine spezielle Ausführung der Toolchain bzw. der Compiler-Software.
  • Das Software-Modul zur Erzeugung der Gegenmaßnahmen wird durch Parameter gesteuert, welche die Art und den Umfang der Gegenmaßnahmen definieren, insbesondere
    • • Welche Arten von Daten durch redundante Daten abgesichert werden sollen (z. B. Daten im RAM oder EEPROM, Adresswerte, Registerinhalte)
    • • Wie die redundanten Daten gestaltet sein sollen (z. B. Art der zu benutzenden Prüfsummen)
    • • Welche Arten von Prüfroutinen erzeugt werden sollen (Erstellen und Prüfen von Prüfsummen vor/nach der Datenverwendung, doppeltes Abfragen von Bedingungen ggf. in komplementärer Weise, redundante Code-Abschnitte, Weitergabe redundanter Information zur Kontrolle der logischen Programmablauffolgen, Schreiben und nachfolgendes Lesen und Vergleichen von Daten, Durchführen von mathematisch inversen Operationen) Wie viel Prüfroutinen eingebracht werden sollen (absolute oder relative Maßzahl der Codegröße
  • Das folgende Beispiel illustriert die Vorgehensweise:
    Wenn in der Smartcard-Software z. B. ein Speicherbereich angelegt wird und es handelt sich dabei um einen kritischen Speicherbereich, wie z. B. einen Schlüssel, dann wird üblicherweise vom Entwickler gefordert, dazu auch eine Prüfsumme abzuspeichern. Der Entwickler muss die Berechnung der Prüfsumme programmieren, muss einen Speicherbereich für diese Prüfsumme reservieren und muss dann auch an bestimmten Stellen des von ihm entwickelten Programms die Prüfsumme wieder prüfen. Die Erfindung besteht nun darin, dass dieser Schritt, das Berechnen der Prüfsumme, das Reservieren des Speicherplatzes, das Abspeichern und das nachträgliche Wiederprüfen automatisch in diesen Software-Code automatisch durch die Toolchain eingefügt, wird und damit für den Entwickler auch weitgehend transparent abläuft.
  • Zusätzlich kann nach einer Weiterbildung das Softwaremodul dynamische Parameter erzeugen, welche zur Laufzeit des Chipkartenbetriebssystem und der Applikationen vorgeben, wie ausführlich und wie zeitaufwendig die Gegenmaßnahmen auszuführen sind.
  • Aus dem beigefügten Blockschaltbild ergibt sich, dass die Sicherheit einer Chipkarte durch das Zusammenspiel sowohl der sicheren Chip-Hardware als auch der sicheren Software (Applikationen, Betriebssystem und Software-Gegenmaßnahmen, wie von der Dokumentation gefordert) erzeugt werden muss.
  • Der Erfindungsgegenstand der vorliegenden Erfindung ergibt sich nicht nur aus dem Gegenstand der einzelnen Patentansprüche, sondern auch aus der Kombination der einzelnen Patentansprüche untereinander.
  • Alle in den Unterlagen, einschließlich der Zusammenfassung offenbarten Angaben und Merkmale, insbesondere die in den Zeichnungen dargestellte räumliche Ausbildung, werden als erfindungswesentlich beansprucht, soweit sie einzeln oder in Kombination gegenüber dem Stand der Technik neu sind.
  • Es zeigen:
  • 1: Blockschaltbild mit allgemeiner Darstellung des Zusammenspiels von Software-Entwicklung, sicherer Chip-Hardware und Software Gegenmaßnahmen in einer Chipkarte.
  • 2: Implementierung des Sicherheitscodes in der Toolchain.
  • Die Chipkarte 4 besteht im Prinzip aus einer sicheren Chip-Hardware 2, Applikationen 6, einem Betriebssystem 7 und Software Gegenmaßnahmen 1. Die zur sicheren Chip-Hardware gehörige Dokumentation 3 schreibt vor, welche Software – Gegenmaßnahmen 1 zu implementieren sind, um mir dieser sichere Chip-Hardware 2 ein bestimmtes Produkt (Chipkarte 4) in sicherer Weise umzusetzen.
  • Der Programmierer 5 implementiert Applikationen 6, Betriebssystem 7 und die Software – Gegenmaßnahmen 1 gemäß den Vorgaben der Dokumentation 3 für die sichere Chip-Hardware 2.
  • Erfindungsgemäß soll nun die auf der Chipkarte ablaufende Software (Betriebssystem 7 und Applikationen 6) durch eine automatisch Erzeugung von Gegenmaßnahmen 15 in der Toolchain 8 abgesichert werden, ohne dass es der manuellen Einfügung von bestimmten Gegenmaßnahmen bedarf.
  • Der Source-Code 9, der vom Entwickler 5 verfasst wurde, wird durch die Toolchain 8, die z. B. aus einem Preprozessor 10, einem Compiler 11, einem Assembler 12 und einem Linker 13 besteht in den Maschinencode 14 umgewandelt.
  • Das Wichtige der vorliegenden Erfindung ist nun in der zweiten Abbildung, 2 dargestellt, dass herkömmlich vom Programmierer 5 verlangt wird, Software Gegenmaßnahmen gemäß Dokumentation 3 zu implementieren, beispielsweise bei Datenelementen redundante Daten zu definieren und ferner Prüfroutinen, um beispielsweise diese redundanten Daten auf Integrität zu prüfen oder Maßnahmen, welche die Ablaufintegrität sicherstellen.
  • Erfindungsgemäß soll dies nun vermieden werden und stattdessen sollen die Erzeugung der Gegenmaßnahmen 15 (z. B. redundanten Daten und die Prüfroutinen) in der den Sourcecode verarbeitenden Software (Toolchain 8) unter Verwendung des Softwaremoduls 17 erzeugt werden.
  • Damit wird der Programmieraufwand wesentlich verringert, denn es ist nicht mehr notwendig, im Source-Code 9 die Erzeugung der Gegenmaßnahmen 15 durch den Programmierer 5 durchzuführen, sondern dies wird nachfolgend in der nachgeschalteten Toolchain 8 zusammen mit dem Softwaremodul 15 gesteuert durch die Parameter 18 durchgeführt.
  • Die Gegenmaßnahmen werden somit mit wesentlich geringerem Entwicklungsaufwand generiert, wobei auch die Fehlerträchtigkeit minimiert wird.
  • Das Software-Modul (17) zur Erzeugung der Gegenmaßnahmen (15) ist vorteilhaft in die Toolchain (Bereich zwischen dem Source-Code (9), dem Preprozessor (10), dem Compiler (11), dem Assembler (12), dem Linker (13)) und dem ausführenden Organ für die Ausführung des Maschinencodes (14) dazwischen geschaltet.
  • Damit besteht der Vorteil, die manuelle und damit nur aufwendig anpassbare Implementierung der Gegenmaßnamen zu vermeiden und in die Toolchain zu verlagern, wobei dynamische Parameter definieren und damit der Toolchain vorgeben, wie und in welchem Ausmaß die Umsetzung der Gegenmaßnahmen stattzufinden hat. Beispielsweise können hier der zur Verfügung stehende Speicherplatz für die redundanten Daten sowie der gewünschte Abarbeitungsaufwand der Prüfroutinen definiert werden. Die Implementierung eines dynamischen Parameters hat also den Vorteil, dass man über diese Variablen frei entscheiden kann, wie die Sicherheitsprozeduren und in welcher Zeit sie ablaufen, während dies bei einer manuellen Source-Code-Programmierung nicht oder nur mit großen Aufwand möglich ist.
  • Mit den Maßnahmen der Erfindung wird individuell notwendiger Programmieraufwand eingespart, weil die Implementierung von Gegenmaßnahmen in die selbsttätig ablaufende Toolchain verlagert ist.
  • Bezugszeichenliste
  • 1
    Software-Gegenmaßnahmen
    2
    Sichere Chip-Hardware
    3
    Dokumentation
    4
    Chipkarte
    5
    Programmierer
    6
    Applikationen
    7
    Betriebssystem
    8
    Toolchain
    9
    Source-Code
    10
    Preprozessor
    11
    Compiler
    12
    Assembler
    13
    Linker
    14
    Maschinencode
    15
    Erzeugung von Gegenmaßnahmen
    16
    Analyseinformation
    17
    Software-Modul
    18
    Parameter

Claims (7)

  1. Chipkarte mit Maßnahmen zur Überwachung der Datenintegrität und Maßnahmen zur Gewährleistung der Ablaufintegrität auf Softwarebasis (Software-Gegenmaßnahmen (1)), wobei diese Maßnahmen in der auf der Chipkarte (4) ablaufenden Software (Betriebssystem (7) und Applikationen (6)) realisiert sind, um die Chipkarte (4) gegen äußere Angriffe zu schützen, insbesondere durch Software – Gegenmaßnahmen (1) wie • Versehen der Daten, Adresswerte und Rücksprungadressen mit Prüfsummen oder redundanten Daten und deren Verarbeitung durch Prüfroutinen • Einbringen von redundanten Codeabschnitten (z. B. doppeltes und ggf. komplementäres Abfragen von Bedingungen, Weitergabe redundanter Information bei Unterprogrammaufrufen) zur Sicherung der Ablaufintegrität logischer Programmabfolgen • Einbringen von zusätzlichem Code und Daten zur Erkennung von unbeabsichtigten Sprüngen (z. B. von einem Angreifer induziert) innerhalb des Programmablaufes. • Das Schreiben und nachfolgende Zurücklesen von Daten • Durchführen von mathematisch inversen Operationen und Kontrolle der Ergebnisse • Aktivieren und Deaktivieren von Hardware-Gegenmaßnahmen gemäß den Vorgaben der Dokumentation (3) dadurch gekennzeichnet, dass diese Erzeugung von einer oder mehreren der Gegenmaßnahmen (15) (redundante Daten und Prüfroutinen) von einem Software-Modul (17) durchgeführt wird.
  2. Chipkarte nach Anspruch 1, dadurch gekennzeichnet, dass das Software-Modul (17) selbsttätig abläuft.
  3. Chipkarte nach Anspruch 1 oder 2, dadurch gekennzeichnet, dass das Software-Modul (17) zur Erzeugung der Gegenmaßnahmen in eine oder alle Komponenten der Toolchain (bestehend aus zumindest Preprozessor (10), dem Compiler (11), dem Assembler (12), dem Linker (13)) eingreift oder integriert ist.
  4. Chipkarte nach einem der Ansprüche 1 bis 3, dadurch gekennzeichnet, dass das Software-Modul (17) zur Erzeugung der Gegenmaßnahmen durch Parameter (18) gesteuert wird, welche die Art und den Umfang der Gegenmaßnahmen definieren, insbesondere • Welche Arten von Daten durch redundante Daten abgesichert werden sollen (z. B. Daten im RAM oder EEPROM, Adresswerte, Registerinhalte) • Wie die redundanten Daten gestaltet sein sollen (z. B. Art der zu benutzenden Prüfsummen) • Welche Arten von Prüfroutinen erzeugt werden sollen (Erstellen und Prüfen von Prüfsummen vor/nach der Datenverwendung, doppeltes Abfragen von Bedingungen ggf. in komplementärer Weise, redundante Code-Abschnitte, Weitergabe redundanter Information zur Kontrolle der logischen Programmablauffolgen, Schreiben und nachfolgendes Lesen und Vergleichen von Daten, Durchführen von mathematisch inversen Operationen) • Wie viel Prüfroutinen eingebracht werden sollen (absolute oder relative Maßzahl der Codegröße)
  5. Chipkarte nach einem der Ansprüche 1 bis 4, dadurch gekennzeichnet, dass die Toolchain (8) zusätzlich die Werkzeuge für das Anforderungsmanagement (insbesondere Sicherheitsanforderungen, welche automatisch in Gegenmaßnahmen umgesetzt werden) umfasst.
  6. Chipkarte nach einem der Ansprüche 1 bis 5, dadurch gekennzeichnet, dass das Software-Modul (17) zur Erzeugung der Gegenmaßnahmen (15) in einen speziellen Bereich der Toolchain, konkret den Bereich zwischen dem Source-Code (9) und dem Preprozessor (10, dazwischen geschaltet ist.
  7. Verfahren zum Betrieb einer Chipkarte nach einem der Ansprüche 1 bis 6, dadurch gekennzeichnet, dass das Softwaremodul (17) weiters dynamische Parameter erzeugt, welche zur Laufzeit des Chipkartenbetriebssystem und der Applikationen vorgeben, wie ausführlich und wie zeitaufwendig die Gegenmaßnahmen auszuführen sind.
DE200910033211 2009-07-15 2009-07-15 Chipkarte mit Überwachung der Integrität auf Softwarebasis Withdrawn DE102009033211A1 (de)

Priority Applications (2)

Application Number Priority Date Filing Date Title
DE200910033211 DE102009033211A1 (de) 2009-07-15 2009-07-15 Chipkarte mit Überwachung der Integrität auf Softwarebasis
AT11662010A AT508649A2 (de) 2009-07-15 2010-07-09 Chipkarte mit überwachung der integrität auf softwarebasis

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE200910033211 DE102009033211A1 (de) 2009-07-15 2009-07-15 Chipkarte mit Überwachung der Integrität auf Softwarebasis

Publications (1)

Publication Number Publication Date
DE102009033211A1 true DE102009033211A1 (de) 2011-02-03

Family

ID=43402356

Family Applications (1)

Application Number Title Priority Date Filing Date
DE200910033211 Withdrawn DE102009033211A1 (de) 2009-07-15 2009-07-15 Chipkarte mit Überwachung der Integrität auf Softwarebasis

Country Status (2)

Country Link
AT (1) AT508649A2 (de)
DE (1) DE102009033211A1 (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116521272A (zh) * 2023-06-30 2023-08-01 睿思芯科(深圳)技术有限公司 自定义芯片的在线集成开发配置***

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102820060B (zh) * 2012-08-22 2015-06-17 深圳市浦洛电子科技有限公司 全自动在线烧录装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050160409A1 (en) * 2003-05-15 2005-07-21 Veronika Schmid-Lutz Systems and methods for providing software and a corresponding pricing model
DE102004055875A1 (de) * 2004-11-19 2006-05-24 Robert Bosch Gmbh Verfahren zum anwendungsspezifischen Konfigurieren einer Software
EP1870829A1 (de) * 2006-06-23 2007-12-26 Microsoft Corporation Softwareschutz durch Erzwingen der Datenflussintegrität
US20080052499A1 (en) * 2006-07-11 2008-02-28 Cetin Kaya Koc, Ph.D. Systems and methods for providing security for computer systems

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050160409A1 (en) * 2003-05-15 2005-07-21 Veronika Schmid-Lutz Systems and methods for providing software and a corresponding pricing model
DE102004055875A1 (de) * 2004-11-19 2006-05-24 Robert Bosch Gmbh Verfahren zum anwendungsspezifischen Konfigurieren einer Software
EP1870829A1 (de) * 2006-06-23 2007-12-26 Microsoft Corporation Softwareschutz durch Erzwingen der Datenflussintegrität
US20080052499A1 (en) * 2006-07-11 2008-02-28 Cetin Kaya Koc, Ph.D. Systems and methods for providing security for computer systems

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116521272A (zh) * 2023-06-30 2023-08-01 睿思芯科(深圳)技术有限公司 自定义芯片的在线集成开发配置***
CN116521272B (zh) * 2023-06-30 2024-01-12 睿思芯科(深圳)技术有限公司 自定义芯片的在线集成开发配置***

Also Published As

Publication number Publication date
AT508649A2 (de) 2011-03-15

Similar Documents

Publication Publication Date Title
DE102010037457B4 (de) Verfahren zur Datenverarbeitung zum Bereitstellen eines Wertes zum Ermitteln, ob bei einer Ausführung eines Programms ein Fehler aufgetreten ist, Verfahren zur Datenverarbeitung zum Ermitteln, ob bei einer Ausführung eines Programms ein Fehler aufgetreten ist, Verfahren zum Erzeugen von Programm-Code, Datenverarbeitungsanordnungen zum Bereitstellen eines Wertes zum Ermitteln, ob bei einer Ausführung eines Programms ein Fehler aufgetreten ist, Datenverarbeitungsanordnungen zum Ermitteln, ob bei einer Ausführung eines Programms ein Fehler aufgetreten ist, und Datenverarbeitungsanordnungen zum Erzeugen von Programm-Code
EP2188755A1 (de) Verfahren und vorrichtung zur sicherung eines programms gegen eine kontrollflussmanipulation und gegen einen fehlerhaften programmablauf
DE112017004843T5 (de) Technologien für deterministischen Codeflussintegritätsschutz
EP1611510B1 (de) Kontrollierte ausführung eines für eine virtuelle maschine vorgesehenen programms auf einem tragbaren datenträger
DE10159901A1 (de) Mikrocomputer mit eingebautem programmierbarem, nichtflüchtigem Speicher
EP1262856A2 (de) Programmgesteuerte Einheit
DE10340411B4 (de) Vorrichtung und Verfahren zur sicheren Ausführung eines Programms
DE102009033211A1 (de) Chipkarte mit Überwachung der Integrität auf Softwarebasis
DE102018213053A1 (de) Verfahren zum Analysieren von Quelltexten
DE2755656A1 (de) Einrichtung zum speicherschutz fuer digitalspeicher
EP0657820A1 (de) Verfahren zum Verhindern einer unberechtigten Datenänderung bei einer Vorrichtung mit einem nichtflüchtigen Speicher
DE102007040721B4 (de) Datenverarbeitungsanordnung, Verfahren zur Datenverarbeitung, Computerprogrammelement und Überprüfungsanordnung für einen Speicher
EP1636700A1 (de) Verfahren zum nachladen einer software in den bootsektor eines programmierbaren lesespeicher
EP3234843A1 (de) Verfahren zum bereitstellen einer sicherheitskritischen softwareapplikation auf einer computereinheit
DE2242009A1 (de) System zur aenderung von mikrobefehlen sowie verfahren und system zur pruefung der sicherheit von verzweigungseigenschaften eines rechnersystems
WO2016050857A1 (de) Verfahren zur datenverarbeitung zum ermitteln, ob bei einer ausführung eines programms ein fehler aufgetreten ist und datenverarbeitungsanordnungen zum erzeugen von programm-code
DE102010042574B4 (de) Verfahren zum Betreiben eines Mikrocontrollers für ein Automobil und Mikrocontroller
EP3798873A1 (de) Verfahren zum schützen einer computer-implementierten anwendung vor manipulation
DE102018123921A1 (de) Techniken zum Verhindern von Speicherkorruption
EP3876123B1 (de) Anordnung und betriebsverfahren für einen sicheren hochfahrablauf einer elektronischen einrichtung
DE102012020442B4 (de) Verfahren zum Überprüfen von Daten mittels wenigstens zweier Prüfsummen
DE102022111925A1 (de) Halbleiterchipvorrichtung und verfahren zum prüfen der integrität eines speichers
DE102022116869A1 (de) Verfahren zum ausführen eines programms auf einer datenverarbeitungsvorrichtung
AT508441B1 (de) Verfahren zum prüfen einer chipkarte durch simulation von angriffen
DE102005006832A1 (de) Schaltungsanordnung und Verfahren zur gesicherten Datenverarbeitung und deren Verwendung

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee

Effective date: 20120201