DE102017011915A1 - Verfahren zur Sicherheitsverbesserung eines in einem Terminal laufenden Softwarecodes - Google Patents

Verfahren zur Sicherheitsverbesserung eines in einem Terminal laufenden Softwarecodes Download PDF

Info

Publication number
DE102017011915A1
DE102017011915A1 DE102017011915.5A DE102017011915A DE102017011915A1 DE 102017011915 A1 DE102017011915 A1 DE 102017011915A1 DE 102017011915 A DE102017011915 A DE 102017011915A DE 102017011915 A1 DE102017011915 A1 DE 102017011915A1
Authority
DE
Germany
Prior art keywords
security
software code
count
counter
prologue
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.)
Ceased
Application number
DE102017011915.5A
Other languages
English (en)
Inventor
Tapan Vinchhi
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.)
Giesecke and Devrient Mobile Security GmbH
Original Assignee
Giesecke and Devrient Mobile Security 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 Giesecke and Devrient Mobile Security GmbH filed Critical Giesecke and Devrient Mobile Security GmbH
Priority to DE102017011915.5A priority Critical patent/DE102017011915A1/de
Publication of DE102017011915A1 publication Critical patent/DE102017011915A1/de
Ceased 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/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • G06F21/54Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by adding security routines or objects to programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/44Program or device authentication
    • 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
    • G06F21/572Secure firmware programming, e.g. of basic input output system [BIOS]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

Die vorliegende Erfindung ist es, ein Verfahren zur Sicherheitsverbesserung eines Softwarecodes, der in einem Terminal ausgeführt wird, unter Verwendung eines automatisierten Ablaufsteuerungslogikrahmens bereitzustellen. Der Softwarecode umfasst einen unkritischen und sicherheitskritischen Softwarecodeabschnitt. Zunächst wird der Softwarecode teilweise ausgeführt. Zusätzlich wird ein Ablaufsteuerungslogik-Framework mit einem Prolog und einem Epilog ausgeführt. Vor der Ausführung des sicherheitsrelevanten Software-Codeabschnitts wird der Prolog und nach der Ausführung des sicherheitsrelevanten Codeabschnitts der Epilog ausgeführt. Der Prolog erhöht einen Ablaufkontrollzähler um einen vordefinierten Zählerschrittbetrag auf einen erhöhten Zählwert und vergleicht den erhöhten Zählwert mit einem erwarteten Zählwert des Ablaufkontrollzählers. Wenn der erhöhte Zählwert dem erwarteten Zählwert entspricht, verringert der Epilog den Ablaufzähler um den gleichen Zählerschrittbetrag, und wenn der erhöhte Zählwert nicht dem erwarteten Zählwert entspricht, wird ein Sicherheitswarnung ausgelöst.

Description

  • Gebiet der Erfindung
  • Die vorliegende Erfindung betrifft ein Verfahren zur Erhöhung der Sicherheit eines Terminals. Genauer betrifft die vorliegende Erfindung ein Verfahren zur Sicherheitsverbesserung eines Softwarecodes, der in einem Terminal unter Verwendung eines automatisierten Ablaufsteuerungsrahmens (Flow Control Framework) läuft.
  • Hintergrund der Erfindung
  • Zur Erhöhung der Sicherheit in einem Terminal wie einem Computer, einem Mobiltelefon oder einer Smartcard (nämlich SIM-Karte, Debitkarte, Kreditkarte oder jegliche Art von Zahlungs-/Identifikationskarten) muss der Programmierer derzeit die Ablaufsteuerungslogik manuell in die Software einfügen. Auch im Betriebssystem (OS) eines Computers, Laptops oder einer Smartcard wird die Ablaufsteuerungslogik manuell in die Software eingefügt, wo immer um Sicherheit betroffen ist. Dieser Prozess ist sehr umständlich. Er erfordert, dass der Programmierer die Inkremente und Dekremente des Kontrollflusses im Auge behält. Da es sich um einen manuellen Prozess handelt, ist er daher fehleranfällig. Dieser Prozess macht die Software langwierig und schwierig für einen Programmierer zu warten.
  • Darüber hinaus kann es zu Sicherheitsverletzungen im Terminal kommen, und die Hacker brechen den Sicherheitspin (Pin = persönliche Identifikationsnummer), der zum Schutz des Terminals vor unbefugten Aktivitäten vorgesehen ist. Die Sicherheitspin-Funktion wird durch einen Pin-Fehlbedienungszähler (Pin retry counter, PIN-Eingabewiederholungszähler) gesichert. Dieser Zähler für die Pin-Wiederholung begrenzt die Anzahl der falschen Versuche einer Person, auf die Karte oder Daten von Geräten zuzugreifen. Wenn die Person in der Lage ist, den Pin-Fehlbedienungszähler zu manipulieren, wie z.B. das Überspringen des Dekrements des Pin-Fehlbedienungszählerschritts und das Abziehen des Terminals vor dem Dekretieren des Pin-Fehlbedienungszählers, kann sie unbegrenzte Pin-Wiederholungen durchführen, wodurch Hacker in die Lage versetzt werden, die im Terminal gespeicherten Daten zu hacken.
  • Es besteht also Bedarf an einem Verfahren zur Erhöhung der Sicherheit eines Terminals, das die bisherigen Nachteile überwinden kann.
  • Gegenstand der Erfindung
  • Ein Ziel der vorliegenden Erfindung ist es, ein Verfahren zur Sicherheitsverbesserung eines Softwarecodes bereitzustellen, der in einem Terminal unter Verwendung eines automatisierten Ablaufsteuerungslogikrahmens ausgeführt wird.
  • Insbesondere ist es ein Ziel der vorliegenden Erfindung, ein Verfahren zur Sicherheitsverbesserung eines in einem Terminal laufenden Softwarecodes bereitzustellen, der mit einem Funktionsaufruf zur Automatisierung des Sicherheitsprozesses versehen ist.
  • Insbesondere ist es ein Ziel der vorliegenden Erfindung, ein Verfahren zur Sicherheitsverbesserung eines in einem Terminal laufenden Softwarecodes bereitzustellen, bei dem die Reihenfolge der Anweisungen leicht wartbar und lesbar ist.
  • Insbesondere ist es ein Ziel der vorliegenden Erfindung, ein Verfahren zur Sicherheitsverbesserung eines in einem Terminal laufenden Softwarecodes bereitzustellen, das fehlerfrei ist, und bei dem nicht die Anforderung an den Programmierer besteht, in der Software Prüfungen zum Inkrementieren und Dekrementieren der Ablaufkontrollzähler durchzuführen.
  • Insbesondere ist es ein Ziel der vorliegenden Erfindung, ein Verfahren zur Sicherheitsverbesserung eines in einem Terminal laufenden Softwarecodes bereitzustellen, das Hacking und Spoofing von im Terminal gespeicherten Daten verhindert.
  • Zusammenfassung der Erfindung
  • Der Gegenstand wird durch eine Erfindung erreicht, wie sie in den unabhängigen Ansprüchen beschrieben ist. Ausführungsformen der Erfindung werden in abhängigen Ansprüchen beschrieben. Gemäß der vorliegenden Erfindung wird ein Verfahren zur Sicherheitsverbesserung eines Softwarecodes, der in einem Terminal ausgeführt wird, unter Verwendung eines automatisierten Ablaufsteuerungslogikrahmens bereitgestellt. Sicherheitskritische Codeabschnitte werden durch einen Ablaufkontrollzähler geschützt, dessen Anzahl vor der Ausführung des sicherheitskritischen Codeabschnitts erhöht (durch ein Prologmodul) und nach der Ausführung des sicherheitskritischen Codeabschnitts verringert (durch ein Epilogmodul) wird, vorzugsweise jedoch nur, wenn der sicherheitskritische Codeabschnitt ausgeführt und nicht übersprungen wird. Die erhöhte Anzahl wird mit einer erwarteten erhöhten Anzahl verglichen. Wenn der sicherheitskritische Codeabschnitt übersprungen wird, wird auch der Epilog übersprungen. Infolgedessen entspricht bei einem nächsten sicherheitskritischen Codeabschnitt, wenn der Prolog die Anzahl der Ablaufkontrollzähler erhöht, die erhöhte Anzahl nicht der erwarteten Anzahl, da der vorherige Epilog und damit die Verringerung des Ablaufkontrollzählers übersprungen wurde. Als Folge dieser Diskrepanz wird ein Sicherheitsalarm ausgelöst. Optional kann die Warnung mit der Unterbrechung der Ausführung der Software einhergehen, so dass die Softwareausführung nur dann bis zum Ende des Softwarecodes fortgesetzt wird, wenn keine kritischen relevanten Codeabschnitte übersprungen werden. Zu Gunsten des oben beschriebenen Szenarios, vorzugsweise, impliziert der Softwarecode mindestens zwei sicherheitskritische Codeabschnitte, die jeweils durch den Ablaufzähler geschützt sind, in Serie. Insbesondere kann als sicherheitskritischer Software-Codeabschnitt ein, mehrere oder alle von folgenden vorgesehen werden: eine Pin-Fehlbedienungszähler-Dekrement-Routine; eine PIN-Vergleichs-Routine; eine Pin-Fehlbedienungszähler-Inkrement-Routine.
  • Das Terminal kann ein Computer, ein Laptop, ein Mobiltelefon oder eine Smartcard sein, die für Finanz-/Identifikationszwecke und dergleichen verwendet wird. Diese Terminals können nach Eingabe einer autorisierten Sicherheits-PIN bedient werden. Die Authentifizierung wird durch den Ablaufsteuerungslogikrahmen (Flow Control Logic Framework) entweder durch Software oder Hardware vor- und nachverarbeitet. Die Rahmenoperation der Ablaufsteuerungslogik ist mit einer Folge von Anweisungen im Prolog und Epilog programmiert, wobei die Prolog- und Epilogfunktionalität automatisch für Funktionen aufgerufen wird, die eine sichere Ablaufsteuerungslogik im Terminal erfordern. Insbesondere wird der Ablaufsteuerungslogikrahmen auf das Terminal angewendet, wenn eine sichere Operation wie eine Benutzerauthentifizierung am Terminal durchgeführt wird.
  • In einem ersten Schritt wird ein Softwarecode teilweise ausgeführt und initialisiert den Rahmen der Ablaufsteuerungslogik mit Zufallswerten. Der Softwarecode umfasst unkritische und sicherheitskritische Codeabschnitte. In der vorliegenden Ausführungsform können die sicherheitskritischen Codeabschnitte eine PIN-Vergleichsroutine oder eine PIN-Erhöhung vor dem PIN-Vergleich oder eine PIN-Erhöhung nach dem PIN-Vergleich sein.
  • Weiterhin wird der Prolog vor der Ausführung der sicherheitskritischen Software-Codeabschnitte ausgeführt. In der vorliegenden Ausführungsform kann der sicherheitskritische Software-Codeabschnitt verschachtelte sicherheitskritische Softwareabschnitte enthalten. Als nicht einschränkendes Beispiel ist das Verfahren mit einem verschachtelten sicherheitskritischen Software-Codeabschnitt 1 und einem verschachtelten sicherheitskritischen Codeabschnitt 2 versehen. Für einen Fachmann kann es selbstverständlich sein, endlose verschachtelte sicherheitskritische Abschnitte in der Methode bereitzustellen. Weiterhin wird der sicherheitskritische Software-Codeabschnitt ausgeführt. Der Softwarecode kann ein Authentifizierungsmodul umfassen, das eine PIN-Fehlbedienungsroutine umfasst. Die PIN-Fehlbedienungsroutine kann einen sicherheitsrelevanten Software-Codeabschnitt, eine PIN-Erhöhungsroutine, eine PIN-Vergleichsroutine und eine PIN-Erniedrigungsroutine umfassen.
  • Weiterhin wird der Prolog vor der Ausführung des verschachtelten sicherheitskritischen Software-Anschnitts 1 ausgeführt. Anschließend wird der verschachtelte sicherheitskritische Software-Codeabschnitt 1 ausgeführt. Im nächsten Schritt wird die Epilogfunktion automatisch ausgeführt, bevor sie den verschachtelten sicherheitskritischen Software-Codeabschnitt 1 verlässt. Der Prolog wird vor der Ausführung des verschachtelten sicherheitskritischen Software-Codeabschnitts 2 weiter ausgeführt. Anschließend wird der verschachtelte sicherheitskritische Softwareabschnitt 2 ausgeführt. Auch hier wird der Epilog ausgeführt, bevor der verschachtelte sicherheitskritische Softwareabschnitt 2 verlassen wird. Schließlich wird der Epilog vor dem Verlassen des sicherheitskritischen Softwarebereichs ausgeführt.
  • Der Prolog ist ein Modul mit Schritten, bei denen die Ablaufkontrollzähler jedes Mal, wenn eine sichere Funktionalität ausgeführt wird, um einen Zählerschrittbetrag (Zählerschritt) erhöht werden und eine Warnung ausgelöst wird, wenn die Ablaufkontrollzähler nicht mit den erwarteten Werten übereinstimmen. Der Epilog ist ein Modul mit den Schritten, die Ablaufkontrollzähler jedes Mal, wenn eine sichere Funktionalität ausgeführt wird, um einen Zähler zu dekrementieren und einen Alarm auszulösen, wenn die Ablaufkontrollzähler nicht mit den erwarteten Werten übereinstimmen. Die Prolog- und die Epilog-Funktionalität können in Hard- oder Software implementiert sein. Der Prologzählerschritt und der Epilogzählerschritt können die gleiche Schrittzahl von Erhöhungen bzw. Verringerungen sein.
  • Figurenliste
  • Die Vorteile und Merkmale der vorliegenden Erfindung werden durch die folgende detaillierte Beschreibung und die Ansprüche in Verbindung mit den beigefügten Zeichnungen besser verständlich, wobei gleichartige Elemente mit gleichen Symbolen bezeichnet sind und in denen:
    • 1 eine Ausführungsform veranschaulicht, die ein Verfahren zur Sicherheitsverbesserung eines Terminals unter Verwendung eines automatisierten Ablaufsteuerungslogikrahmens gemäß der vorliegenden Erfindung darstellt;
    • 2 ein Flussdiagramm ist, das den Funktionsteil eines Prologs gemäß der vorliegenden Erfindung darstellt;
    • 3 ein Flussdiagramm ist, das den Funktionsteil eines Nachwortes gemäß der vorliegenden Erfindung veranschaulicht; und
    • 4 ein Flussdiagramm ist, das ein Beispiel für die Benutzerauthentifizierung an einem Terminal zur Demonstration der vorliegenden Erfindung darstellt.
  • Detailbeschreibung der Erfindung
  • Die vorliegende Erfindung soll ein Verfahren zur Erhöhung der Sicherheit eines Terminals unter Verwendung eines automatisierten Ablaufsteuerungslogikrahmens bereitstellen. Die Erfindung ist mit einem Funktionsaufruf zur Automatisierung des Sicherheitsprozesses ausgestattet. Darüber hinaus ist die Reihenfolge der Anweisungen und Funktionen leicht zu warten und zu lesen. Darüber hinaus ist die vorliegende Erfindung fehlerfrei und es besteht keine Erfordernis für den Programmierer, manuell auf Inkrement und Dekrement der Ablaufzähler zu prüfen. Außerdem verhindert die vorliegende Erfindung das Hacken und Spoofing von im Terminal gespeicherten Daten.
  • Die offenbarten Ausführungsformen sind nur exemplarisch für die Erfindung, die in verschiedenen Formen dargestellt werden kann.
  • Unter Bezugnahme auf 1 wird nun ein Flussdiagramm eines Verfahrens 100 zur Sicherheitsverbesserung eines Softwarecodes, der in einem Terminal unter Verwendung eines automatisierten Ablaufsteuerungslogikrahmens gemäß der vorliegenden Erfindung ausgeführt wird, dargestellt. Die Sicherheitsverbesserung wird durch den Framework-Betrieb der Ablaufsteuerungslogik entweder durch Software oder Hardware verarbeitet. Das Endgerät kann ein Computer, ein Laptop, ein Mobiltelefon, eine Zahlungskarte oder eine Smartcard sein, die für Finanz-/Authentifizierungszwecke und dergleichen verwendet wird.
  • Weiterhin sind die Terminals in dieser Ausführungsform nach Eingabe einer autorisierten Sicherheits-PIN betriebsbereit. So kann beispielsweise über eine Pin-Eingabe auf die Terminals zugegriffen werden, um die Identität eines Benutzers zu überprüfen und so die Authentizität des Benutzers zu unterscheiden, und das Terminal kann mit einem Eingabe-Fehlbedienungszähler (input retry counter) gesichert sein, um den unbefugten Zugriff durch einen Dritten einzuschränken. Der Eingabe-Fehlbedienungszähler kann ein Pin-Fehlbedienungszähler (pin retry counter) sein. Darüber hinaus kann das Verfahren 100 in jede Logik implementiert werden, die eine verbesserte Sicherheitsimplementierung erfordert und ist nicht nur auf die PIN-basierte Authentifizierung beschränkt.
  • Der Ablaufsteuerungslogikrahmen ist mit einer Folge von Anweisungen in einem Prolog und einem Epilog programmiert, wobei die Prolog- und Epilogfunktionalität automatisch für Funktionen aufgerufen wird, die einen gesichertes Ablaufsteuerungslogikrahmen im Terminal erfordern. Insbesondere wird der Rahmen (das Framework) der Ablaufsteuerungslogik auf das Terminal angewendet, wenn eine Sitzung am Terminal authentifiziert wird. Zum Beispiel: Wenn ein Benutzer versucht, einen Benutzer mit einer sicheren PIN zu authentifizieren.
  • Unter erneuter Bezugnahme auf 1 beginnt das Verfahren 100 bei Schritt 110.
  • Bei Schritt 120 wird ein Softwarecode zumindest teilweise ausgeführt und initialisiert den Ablaufsteuerungslogikrahmen mit Zufallswerten. Der Softwarecode umfasst unkritische und sicherheitskritische Codeabschnitte. In der vorliegenden Ausführungsform können die sicherheitskritischen Codeabschnitte eine PIN-Vergleichsroutine oder eine PIN-Erhöhung vor dem PIN-Vergleich oder eine PIN-Erhöhung nach dem PIN-Vergleich sein.
  • Bei Schritt 130 wird der Prolog vor der Ausführung des sicherheitskritischen Softwareabschnitts ausgeführt. In der vorliegenden Ausführungsform enthält der sicherheitskritische Software-Codeabschnitt einen verschachtelten sicherheitskritischen Softwareabschnitt. Als nicht einschränkendes Beispiel ist das Verfahren 100 mit einem verschachtelten sicherheitskritischen Software-Codeabschnitt 1 und einem verschachtelten sicherheitskritischen Codeabschnitt 2 versehen. Für einen Fachmann kann es naheliegend sein, im Verfahren 100 endlose verschachtelte sicherheitskritische Abschnitte bereitzustellen.
  • Bei Schritt 140 wird der sicherheitskritische Software-Codeabschnitt ausgeführt. So kann beispielsweise der Softwarecode ein Authentifizierungsmodul umfassen, das eine PIN-Wiederholungsroutine umfasst. Die Pin-Wiederholungsroutine umfasst einen sicherheitsrelevanten Software-Codeabschnitt, eine Pin-Erhöhungsroutine, eine PIN-Vergleichsroutine und eine PIN-Abnahmeroutine.
  • Bei Schritt 142 wird der Prolog vor der Ausführung des verschachtelten sicherheitskritischen Softwareteils 1 ausgeführt.
  • Bei Schritt 144 wird der verschachtelte sicherheitskritische Softwarecode Teil 1 ausgeführt.
  • Bei Schritt 146 wird die Epilogfunktion automatisch ausgeführt, bevor die verschachtelte sicherheitskritische Software Teil 1 verlassen wird.
  • Weiterhin wird bei Schritt 148 der Prolog vor der Ausführung der verschachtelten sicherheitskritischen Software Abschnitt 2 weiter ausgeführt.
  • Bei Schritt 150 wird die verschachtelte sicherheitskritische Software Teil 2 ausgeführt.
  • Auch bei Schritt 152 wird der Epilog ausgeführt, bevor der verschachtelte sicherheitskritische Softwareteil 2 verlassen wird.
  • Weiterhin wird bei Schritt 160 der Epilog vor dem Verlassen des sicherheitskritischen Softwareteils ausgeführt. Weiterhin erhöht der Prolog den Ablaufzähler um eine vordefinierte Anzahl auf eine erhöhte Anzahl.
  • Der Prolog vergleicht die erhöhte Anzahl mit einer erwarteten Anzahl des Ablaufzählers. Weiterhin verringert der Epilog den Ablaufzähler um den gleichen Wert, wenn der erhöhte Wert dem erwarteten Wert entspricht. Wenn ein sicherheitsrelevanter Software-Codeabschnitt übersprungen wird, wird auch der nachfolgende Epilog übersprungen. Infolgedessen erkennt der nächste Prolog eine erhöhte Anzahl des Ablaufkontrollzählers, die nicht mit der erwarteten Anzahl übereinstimmt, und es wird ein Sicherheitsalarm ausgelöst, wenn die erhöhte Anzahl nicht mit der erwarteten Anzahl übereinstimmt.
  • Das Verfahren 100 endet bei Schritt 170.
  • Weiterführend zu 2 wird ein Beispiel für den Funktionsteil eines Prologs 200 erläutert.
  • Die Rahmenarbeit der Ablaufsteuerungslogik wird eingeleitet und ruft den Prolog bei Schritt 210 auf.
  • Bei Schritt 220 wird die Verschachtelungsebene um eins erhöht.
  • Bei Schritt 230 wird die aktuelle Ablaufsteuerungslogik um einen Wert erhöht, der dem Volumenstrom-Inkrementwert von Schritt 210 entspricht.
  • Weiterhin wird bei Schritt 240 der tatsächliche Ablaufkontrollzählerstand gegen einen erwarteten Ablaufkontrollzählerstand verifiziert. Wenn der tatsächliche Ablaufkontrollzählerstand mit dem erwarteten Ablaufkontrollzählerstand übereinstimmt (anfänglicher Ablaufkontrollzählerstand + (Ablauf-Inkrementwert *Schachtelungsebene)), endet die Prolog-Funktionalität normalerweise. Wenn bei Schritt 240 die tatsächliche Ablaufkontrolle nicht mit dem erwarteten Wert übereinstimmt (anfänglicher Ablaufzähler + (Ablaufinkrementwert *Verschachtelungsebene)), wird bei Schritt 250 innerhalb des Terminals ein Sicherheitsalarm ausgelöst. Der Prolog endet bei Schritt 360.
  • Weiterhin ist in ein Beispiel für den Funktionsteil eines Epilog erläutert.
  • Die Epilogfunktion 300 beginnt bei Schritt 310.
  • Bei Schritt 320 wird die Verschachtelungsebene um eins erhöht.
  • Bei Schritt 330 wird die aktuelle Ablaufregelung um den Wert gleich dem Ainkrementwert dekrementiert.
  • Weiterhin wird bei Schritt 340 der aktuelle Ablaufregelwert mit dem erwarteten Ablaufzählerwert verglichen. Wenn der tatsächliche Ablaufzählerwert mit dem erwarteten Ablaufzählerwert übereinstimmt (anfänglicher Ablaufzähler + (Ablaufdekrementwert *Schachtelungsebene)), endet die Prolog-Funktionalität normalerweise. Weiterhin bei Schritt 340, wenn die tatsächliche Ablaufkontrolle nicht übereinstimmt (anfänglicher Ablaufzähler + (Ablaufzuwachswert *Schachtelungsebene)), löst die Epilogfunktionalität bei Schritt 350 einen Sicherheitsalarm aus. Der Epilog endet bei Schritt 360.
  • zeigt ein Beispiel, das das Verfahren 100 veranschaulicht. Insbesondere wird ein Authentifizierungsverfahren basierend auf einem Pin-Fehlbedienungszähler dargestellt.
  • Das Verfahren beginnt bei Schritt 400.
  • Bei Schritt 410 wird der Softwarecode zur Ausführung gestartet und initialisiert den Rahmen der Ablaufsteuerungslogik mit Zufallswerten.
  • Weiterhin wird bei Schritt 420 im Terminal eine Eingabe zur Authentifizierung eines Benutzers oder einer Sitzung empfangen. Schritt 420 ist der Schritt, der durch den Ablaufzähler gemäß der Erfindung geschützt ist.
  • Der Authentifizierungsprozess 420 kann die Überprüfung einer Eingabe oder einer komplexeren Challenge-Response-Authentifizierung umfassen. In dieser Ausführungsform ist für die Authentifizierung des Terminals eine Eingabe, wie beispielsweise eine PIN-Verifizierung, erforderlich. Das Terminal ist bereits mit einer vordefinierten Referenzdaten wie einer PIN gespeichert. Der PIN-basierte Benutzer/Session-Authentifizierungsprozess 420 umfasst einen kleineren sicheren Prozess, d.h. die Verringerung des PIN-Wiederholungszählers, den PIN-Vergleich und bei erfolgreichem Vergleich einen Reset/Erhöhung des PIN-Wiederholungszählers auf den maximal zulässigen Wiederholungswert.
  • Bei Schritt 420 wird die Eingabe mit den vom Benutzer im Terminal vordefinierten gespeicherten Referenzdaten abgeglichen und bei Schritt 430 wird ein Ergebnis des Abgleichs erzeugt (Ergebnis: Authentication Success YES oder NO). Gleichzeitig ruft das logische Framework der Ablaufsteuerung Prolog und Epilog auf, um den Authentifizierungsprozess in einer vordefinierten Reihenfolge (Boxen, die Box 420 umfassen) sicherzustellen. Wenn die Eingabe mit den gespeicherten Referenzdaten der vom Benutzer im Terminal vordefinierten PIN übereinstimmt (Box 420), ruft das Flow Control Logic Framework Prolog und Epilog auf, um den Authentifizierungsprozess in einer vordefinierten Reihenfolge sicherzustellen. Die Benutzer/Session-Authentifizierung ist ein sicherer Prozess, der auf einem sicherheitskritischen Codeabschnitt kodiert ist. Um die Sicherheit der Benutzer/Session-Authentifizierung zu erhöhen, wird der Prolog beim Eintritt in die Benutzer/Session-Authentifizierung und der Epilog beim Austritt aus der Benutzer/Session-Authentifizierungsfunktion automatisch aufgerufen. Eine Fehlanpassung der Ablaufzähler in den Funktionen Prolog und Epilog führt zu einer Sicherheitsmeldung. Dadurch wird sichergestellt, dass während des Authentifizierungsprozesses eine korrekte und erwartete Codefolge ausgeführt wird. In dieser Ausführungsform wird der empfangene Eingang, der zur Authentifizierung des Terminals eingegeben wird, einer Verifizierung unterzogen, wobei er mit gespeicherten Referenzdaten abgeglichen wird, die vom Benutzer innerhalb des Terminals vordefiniert sind. Da dies eine sichere Funktionalität ist und erhöhte Sicherheit erfordert, ruft das Framework für die automatisierte Ablaufsteuerung Prolog und Epilog auf, die den korrekten Ablauf der Ausführung während des Authentifizierungsprozesses sicherstellen. Insbesondere in diesem Schritt, wenn die Authentifizierung fehlschlägt, verringert sich der Eingabewiederholungszähler im Terminal um einen Zähler aus einer vordefinierten Anzahl und der Benutzer erhält keinen Zugriff auf eine der Terminalressourcen. Schritt 420 Benutzer/Sitzung authentifizieren, umfasst die drei Routinen (1) PIN-Wiederholungszähler-Dekrement, (2) PIN-Vergleich und (3) PIN-Wiederholungszähler-Inkrement, für jede der drei Routinen wird ein eigener Prolog und Epilog in dieser Reihenfolge (1), (2), (3) aufgerufen. Falls (1) das Dekrement des PIN-Wiederholungszählers übersprungen wird, wird auch der Epilog der (1) PIN-Wiederholungszählungsroutine übersprungen, und der Flusskontrollzähler überspringt einen Zähler. Somit erhält der Prolog der (2) PIN-Vergleichsroutine einen Flusskontrollzähler, der einen Zähler übersprungen hat. Nachdem der Prolog von (2) den Ablaufkontrollzähler erhöht hat, fehlt dem Ablaufkontrollzähler also noch ein Zähler. So liefert der Vergleich der erhöhten mit der erwarteten Anzahl eine Diskrepanz.
  • Der Prolog ist ein Modul mit Schritten, bei denen die Ablaufzähler jedes Mal, wenn eine sicherer Operation durchgeführt wird, um einen Zählerschritt erhöht werden und ein Alarm ausgelöst wird, wenn die Ablaufzähler nicht mit dem erwarteten Wert übereinstimmen. Der Epilog ist ein Modul mit den Schritten, den Ablaufzähler bei jeder sicheren Operation um einen Zähler zu verringern und einen Alarm auszulösen, wenn die Ablaufzähler nicht mit dem erwarteten Wert übereinstimmen. Die Prolog- und die Epilogfunktionalität können in Hard- oder Software implementiert werden.
  • Weiterhin wird bei Schritt 450 die Eingabe authentifiziert, um eine Sitzung zu aktivieren, indem das erfolgreiche Ergebnis der Authentifizierung überprüft wird. Nach erfolgreicher Authentifizierung erhält der Benutzer in Schritt 460 den Zugriff. Insbesondere, wenn das Ergebnis der Authentifizierung erfolgreich ist, basierend auf dem vom Benutzer bereitgestellten Eingabepin, erhält der Benutzer Zugriff auf das Terminal und der Benutzer kann 460 fortfahren und die Ressourcen auf dem Terminal nutzen. Bei fehlendem Authentifizierungserfolg 440 wird der Benutzer abgelehnt.
  • Das Verfahren ist ein typischer Benutzer / Session-Authentifizierungsprozess. Bei einem sicherheits-PIN-basierten Authentifizierungsprozess wird die Anzahl der fehlerhaften oder fehlgeschlagenen Authentifizierung an einem Terminal durch den Fehlbedienungszähler (PIN retry counter) begrenzt. Wenn die Anzahl der fehlgeschlagenen Authentifizierungen die maximal zulässige Eingabewiederholung überschreitet, wird das Terminal blockiert und benötigt Administratorrechte, um den PIN- Fehlbedienungszähler wieder auf den Standardwert zurückzusetzen. Wie zu sehen ist, sind Operationen auf dem PIN-Fehlbedienungszähler, d.h. Dekrement oder Reset, sichere Operationen und erfordern erhöhte Sicherheit. Wenn es Hackern gelingt, PIN-Fehlbedienungszähler-Operationen zu überspringen, ist der Ablaufzählerrahmen, d.h. der Prolog und der Epilog, in der Lage, diese zu erkennen und den Sicherheitsalarm auszulösen.
  • Da der Sicherheitsschlüssel nach jedem Zugriffsversuch auf das Terminal ausgewertet wird, stellt der Kontrollablauf sicher, dass die Manipulation von Anweisungen zu Sicherheitsschlüsseln im Fehlbedienungszäher des Terminals verhindert wird.
  • Das Verfahren endet bei Schritt 470.
  • Die Vorteile der vorliegenden Erfindung liegen darin, ein Verfahren 100 zur Sicherheitsverbesserung eines Terminals unter Verwendung eines automatisierten Ablaufsteuerungslogikrahmens bereitzustellen. Die Erfindung ist mit einem Funktionsaufruf zur Automatisierung des Sicherheitsprozesses ausgestattet. Darüber hinaus ist die Reihenfolge der Anweisungen zur Überprüfung der Authentizität des Sicherheitspins leicht wartbar und lesbar. Darüber hinaus ist die vorliegende Erfindung fehlerfrei und es besteht keine Erfordernis für den Programmierer, den Schlüssel auf Inkrement und Dekrement des Kontrollablaufs zu überprüfen. Außerdem verhindert die vorliegende Erfindung das Hacken und Spoofing von im Terminal gespeicherten Daten.

Claims (7)

  1. Verfahren zur Sicherheitsverbesserung eines in einem Endgerät laufenden Softwarecodes, unter Verwendung eines automatisierten Ablaufsteuerungslogikrahmens, wobei der Softwarecode unkritische und sicherheitskritische Softwarecodeabschnitte umfasst, wobei das Verfahren die folgenden Schritte umfasst: zumindest teilweise Ausführen des Softwarecodes, wobei für mindestens einen oder jeden sicherheitskritischen Softwarecodeabschnitt der sicherheitskritische Softwarecodeabschnitt ausgeführt wird, und zusätzlich ein Ablaufsteuerungslogikrahmen mit einem Prolog und einem Epilog ausgeführt wird, wobei vor der Ausführung des sicherheitsrelevanten Softwarecodeabschnitts der Prolog ausgeführt wird und nach der Ausführung des sicherheitsrelevanten Codeabschnitts der Epilog ausgeführt wird, wobei der Prolog einen Ablaufkontrollzähler um einen vorgegebenen Zählerschrittbetrag auf einen erhöhten Zählwert erhöht und der erhöhte Zählwert mit einem erwarteten Zählwert des Ablaufkontrollzählers vergleicht, und wobei, wenn der erhöhte Zählwert dem erwarteten Zählwert entspricht, der Epilog den Ablaufzähler um den gleichen Zählerschrittbetrag verringert, und wenn der erhöhte Zählwert nicht dem erwarteten Zählwert entspricht, ein Sicherheitsalarm ausgelöst wird.
  2. Verfahren nach Anspruch 1, worin der Prolog und der Epilog ein Modul sind.
  3. Verfahren nach Anspruch 1, worin die Prolog- und Epilogfunktionalität in Hard- oder Software implementiert ist.
  4. Verfahren nach Anspruch 1, wobei das Verfahren eine Endlosschleife ist, die den Alarm weiter auslöst, wenn der erhöhte Zählwert nicht dem erwarteten Zählwert entspricht.
  5. Verfahren nach Anspruch 1, wobei, wenn ein sicherheitsrelevanter Softwarecodeabschnitt übersprungen wird, auch der nachfolgende Epilog übersprungen wird, wodurch bewirkt wird, dass der nächste Prolog einen erhöhten Zählwert des Ablaufkontrollzählers erkennt, der nicht dem erwarteten Zählwert entspricht, wodurch ein Sicherheitsalarm ausgelöst wird.
  6. Verfahren nach Anspruch 1, worin als sicherheitskritischer Softwarecodeabschnitt ein, mehrere oder alle vorgesehen sind: eine Pin-Fehlbedienungszähler-Dekrement-Routine; eine PIN-Vergleichs-Routine; eine Pin-Fehlbedienungszähler-Inkrement-Routine.
  7. Verfahren nach Anspruch 1, worin der Sicherheitsalarm von der Unterbrechung der Ausführung des Softwarecodes begleitet wird.
DE102017011915.5A 2017-12-21 2017-12-21 Verfahren zur Sicherheitsverbesserung eines in einem Terminal laufenden Softwarecodes Ceased DE102017011915A1 (de)

Priority Applications (1)

Application Number Priority Date Filing Date Title
DE102017011915.5A DE102017011915A1 (de) 2017-12-21 2017-12-21 Verfahren zur Sicherheitsverbesserung eines in einem Terminal laufenden Softwarecodes

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102017011915.5A DE102017011915A1 (de) 2017-12-21 2017-12-21 Verfahren zur Sicherheitsverbesserung eines in einem Terminal laufenden Softwarecodes

Publications (1)

Publication Number Publication Date
DE102017011915A1 true DE102017011915A1 (de) 2019-06-27

Family

ID=66768241

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102017011915.5A Ceased DE102017011915A1 (de) 2017-12-21 2017-12-21 Verfahren zur Sicherheitsverbesserung eines in einem Terminal laufenden Softwarecodes

Country Status (1)

Country Link
DE (1) DE102017011915A1 (de)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5734571A (en) * 1995-09-08 1998-03-31 Francotyp-Postalia Ag & Co. Method for modifying data loaded into memory cells of an electronic postage meter machine
US7272748B1 (en) * 2004-03-17 2007-09-18 Symantec Corporation Method and apparatus to detect and recover from a stack frame corruption

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5734571A (en) * 1995-09-08 1998-03-31 Francotyp-Postalia Ag & Co. Method for modifying data loaded into memory cells of an electronic postage meter machine
US7272748B1 (en) * 2004-03-17 2007-09-18 Symantec Corporation Method and apparatus to detect and recover from a stack frame corruption

Non-Patent Citations (10)

* Cited by examiner, † Cited by third party
Title
Control flow. In: Wikipedia, The Free Encyclopedia. Bearbeitungsstand: 12. November 2017. URL: https://en.wikipedia.org/w/index.php?title=Control_flow&oldid=809931262 [abgerufen am 26. November 2018] *
Control flow. In: Wikipedia, The Free Encyclopedia. Bearbeitungsstand: 12. November 2017. URL: https://en.wikipedia.org/w/index.php?title=Control_flow&oldid=809931262 [abgerufen am 26. November 2018]
How to end a program with an if statement?. stackoverflow.com, 2014. https://stackoverflow.com/q/21789720 [abgerufen am 26. November 2018] *
How to end a program with an if statement?. stackoverflow.com, 2014. https://stackoverflow.com/q/21789720 [abgerufen am 26. November 2018]
Is there a way to end the program if statement is false?. stackoverflow.com, 2014. URL: https://stackoverflow.com/q/21962027 [abgerufen am 26. November 2018] *
Is there a way to end the program if statement is false?. stackoverflow.com, 2014. URL: https://stackoverflow.com/q/21962027 [abgerufen am 26. November 2018]
LEE, Donghoorn; JUNG, Jaewook; CHOI, Younsung; WON, Dongho: Improvement and Weakness of Zero-Sum Defender against Return-Oriented Programming Attacks. In: IEICE Transactions on Fundamentals of Electronics, Communications and Computer Sciences, Vol. E99.A, 2016, No. 12, S. 2585–2590. DOI: 10.1587/transfun.E99.A.2585 *
LEE, Donghoorn; JUNG, Jaewook; CHOI, Younsung; WON, Dongho: Improvement and Weakness of Zero-Sum Defender against Return-Oriented Programming Attacks. In: IEICE Transactions on Fundamentals of Electronics, Communications and Computer Sciences, Vol. E99.A, 2016, No. 12, S. 2585–2590. DOI: 10.1587/transfun.E99.A.2585
YURICHEV, Dennis: Reverse Engineering for Beginners. Fassung vom 25. November 2015. URL: https://pdfs.semanticscholar.org/bc26/1858c229f3c94d597018d81e4a9708cc2f74.pdf [abgerufen am 26. November 2018] *
YURICHEV, Dennis: Reverse Engineering for Beginners. Fassung vom 25. November 2015. URL: https://pdfs.semanticscholar.org/bc26/1858c229f3c94d597018d81e4a9708cc2f74.pdf [abgerufen am 26. November 2018]

Similar Documents

Publication Publication Date Title
DE602005005422T2 (de) Verfahren zum erfassen und reagieren auf einen möglichen angriff auf eine sicherheitsdurchsetzungsoperation unter einsatz einer kryptographischen marke oder karte
DE602006000878T2 (de) Verfahren zur Steuerung eines Ressourcenzugriffs eines Prozesses durch einen Elternprozess
EP2188755B1 (de) Verfahren und vorrichtung zur sicherung eines programms gegen eine kontrollflussmanipulation und gegen einen fehlerhaften programmablauf
EP1321887A1 (de) Verfahren und Anordnung zur Verifikation von NV-Fuses sowie ein entsprechendes Computerprogrammprodukt und ein entsprechendes computerlesbares Speichermedium
DE102013013179A1 (de) Verfahren zum Betreiben eines Sicherheitselements
DE10313318A1 (de) Kontrollierte Ausführung eines für eine virtuelle Maschine vorgesehenen Programms auf einem tragbaren Datenträger
DE112010004580T5 (de) Sichere Pin-Verwaltung einer für Benutzer vertrauenswürdigen Einheit
DE10324337A1 (de) Rechnersystem sowie zugehörige Speicherarchitektur und zugehöriges Verfahren zum Durchführen eines Sicherheitsprogramms
WO2012107200A1 (de) Verfahren zur programmierung eines mobilendgeräte-chips
WO2019072341A1 (de) Verfahren und system zum steuern des zugangs zu einer authentifizierungsbehafteten funktion
DE102017011915A1 (de) Verfahren zur Sicherheitsverbesserung eines in einem Terminal laufenden Softwarecodes
DE602004011965T2 (de) Verfahren und schaltung zum identifizieren und/oder verifizieren von hardware und/oder software eines geräts und eines mit dem gerät arbeitenden datenträgers
WO2016096118A1 (de) Verfahren zum betreiben einer computereinheit sowie eine solche computereinheit
DE602004001293T2 (de) Programmintegritätsprüfung mittels Statistiken
EP3159821A1 (de) Prozessor-system mit applet security settings
EP2652665A1 (de) Portabler datenträger mit fehlbedienungszähler
EP2531949B1 (de) Verfahren zum ausführen einer anwendung
DE102018115758A1 (de) Sicherheit von Java-Card-Schlüsselobjekten
EP3039611B1 (de) Verfahren und vorrichtung zur übertragung einer information
DE102021126509B4 (de) Tragbare Chipvorrichtung und Verfahren zum Ausführen eines Softwaremodul-Updates in einer tragbaren Chipvorrichtung
EP1785955A1 (de) Verfahren zur Freigabe des Zugriffs auf eine durch einen persönlichen Identifikationscode gesicherte Anwendung und/oder Einrichtung
EP3312753B1 (de) Physisches sicherheitselement zum zurücksetzen eines passworts
DE102015015212B4 (de) Verfahren zum Betreiben eines Sicherheitsmoduls und Sicherheitsmodul
DE102020211346A1 (de) Verfahren zum Booten einer elektronischen Vorrichtung
EP1638058A2 (de) Verifizierung eines Datenträgers vor der Installation eines Anwendungsprogramms

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R016 Response to examination communication
R002 Refusal decision in examination/registration proceedings
R003 Refusal decision now final