Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
METHOD FOR SECURING ACCESS TO INFORMATION WITHIN A USER TERMINAL, AND USER TERMINAL OF THIS TYPE
Document Type and Number:
WIPO Patent Application WO/2019/162276
Kind Code:
A1
Abstract:
The invention relates to a method for securing access to information within a user terminal (1). One or more hardware components (2, 3, 4, 5) of the user terminal (1) are connected to a processing program (9) by means of a first program interface (8), wherein the processing program (9) carries out a processing of information which is provided by the hardware component/s (2, 3, 4, 5). A user program (11) is connected to the processing program (9) by means of a second program interface (10). The second program interface (10) is different from the first program interface (8). An access of the user program (11) to the one or more hardware components (2, 3, 4, 5) by means of the first program interface (8) is prevented. The processing of the provided information via the processing program (9) comprises a filtering of the information.

Inventors:
FILIMON DIANA (DE)
CESTONARO THILO (DE)
ATZKERN JÜRGEN (DE)
Application Number:
PCT/EP2019/054101
Publication Date:
August 29, 2019
Filing Date:
February 19, 2019
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
FUJITSU CLIENT COMPUTING LTD (JP)
FILIMON DIANA (DE)
CESTONARO THILO (DE)
ATZKERN JUERGEN (DE)
International Classes:
G06F21/82; G06F21/72; G06Q20/00
Domestic Patent References:
WO2016069775A12016-05-06
Foreign References:
US20150007265A12015-01-01
US20100274712A12010-10-28
US20150278804A12015-10-01
US9715600B22017-07-25
Attorney, Agent or Firm:
EPPING HERMANN FISCHER PATENTANWALTSGESELLSCHAFT MBH (DE)
Download PDF:
Claims:
Patentansprüche

1. Verfahren zur Absicherung eines Zugriffs auf

Informationen innerhalb eines Benutzer-Terminals (1),

- wobei eine oder mehrere Hardware-Komponenten (2, 3, 4, 5) des Benutzer-Terminals (1) vermittels einer ersten

Programmschnittstelle (8) an ein Verarbeitungsprogramm (9) angebunden sind, wobei das Verarbeitungsprogramm (9) eine Verarbeitung von ersten Informationen durchführt, die von der oder den Hardware-Komponenten (2, 3, 4, 5) bereitgestellt und vermittels der ersten Programmschnittstelle (8) an das

Verarbeitungsprogramm (9) übergeben werden,

- wobei ein Benutzerprogramm (11) vermittels einer zweiten Programmschnittstelle (10) an das Verarbeitungsprogramm (9) angebunden ist und mit dem Verarbeitungsprogramm (9) zweite Informationen austauscht,

- wobei sich die zweite Programmschnittstelle (10) von der ersten Programmschnittstelle (8) unterscheidet,

- wobei ein Zugriff des Benutzerprogramms (11) vermittels der ersten Programmschnittstelle (8) auf die eine oder die mehreren Hardware-Komponenten (2, 3, 4, 5) unterbunden wird, und

- wobei die Verarbeitung der ersten Informationen durch das Verarbeitungsprogramm (9) eine Filterung der ersten

Informationen umfasst.

2. Verfahren nach Anspruch 1, wobei das Benutzerprogramm (11) eine Verarbeitung der zweiten Informationen durchführt, die vom Verarbeitungsprogramm (9) bereitgestellt und

vermittels der zweiten Programmschnittstelle (10) an das Benutzerprogramm (11) übergeben werden, und wobei die zweiten Informationen zumindest zum Teil aus den gefilterten ersten Informationen resultieren.

3. Verfahren nach Anspruch 1 oder 2, wobei die ersten

Informationen einen oder mehrere Kommando-/Datenblöcke eines Kommunikationsprotokolls umfassen und wobei das

Verarbeitungsprogramm (9) während der Filterung die einen oder mehreren Kommando-/Datenblöcke gemäß vorbestimmten

Kriterien analysiert und definierte Informationen innerhalb der einen oder mehreren Kommando-/Datenblöcke entfernt oder durch andere Informationen ersetzt.

4. Verfahren nach einem der Ansprüche 1 bis 3,

- wobei die eine oder mehreren Hardware-Komponenten (2, 3, 4, 5) des Benutzer-Terminals (1) ein berührungsempfindliches Display (3) und/oder ein Karten-Lesegerät (2, 5) umfassen,

- wobei die ersten Informationen aus einer am

berührungsempfindlichen Display (3) registrierten

Benutzereingabe und/oder aus einem Einlesen von Kartendaten einer Benutzerkarte am Karten-Lesegerät (2, 5) gewonnen werden .

5. Verfahren nach Anspruch 4,

- wobei das Benutzer-Terminal (1) mehrere der Hardware- Komponenten (2, 3, 4, 5) umfasst und die Hardware-Komponenten (2, 3, 4, 5) neben dem berührungsempfindlichen Display (3) und/oder dem Karten-Lesegerät (2, 5) zusätzlich ein

Verschlüsselungsmodul (4) umfassen,

- wobei die gewonnenen ersten Informationen vermittels des Verschlüsselungsmoduls (4) verschlüsselt werden, und

- wobei Informationen, die die verschlüsselten ersten

Informationen umfassen, als zumindest ein Teil der zweiten Informationen vom Verarbeitungsprogramm (9) an das

Benutzerprogramm (11) übergeben werden.

6. Verfahren nach einem der Ansprüche 1 bis 5, wobei das Verfahren während eines elektronischen Bezahlvorgangs des Benutzer-Terminals (1) durchgeführt wird.

7. Benutzer-Terminal (1) mit einer oder mehreren Hardware- Komponenten (2, 3, 4, 5), einem Verarbeitungsprogramm (9) und einem Benutzerprogramm (11),

wobei die eine oder mehreren Hardware-Komponenten (2, 3, 4,

5) vermittels einer ersten Programmschnittstelle (8) an das Verarbeitungsprogramm (9) angebunden sind, und wobei das Benutzerprogramm (11) vermittels einer zweiten

Programmschnittstelle (10) an das Verarbeitungsprogramm (9) angebunden ist,

wobei sich die zweite Programmschnittstelle (10) von der ersten Programmschnittstelle (8) unterscheidet,

wobei das Benutzer-Terminal (1) derart konfiguriert ist, dass ein Zugriff des Benutzerprogramms (11) vermittels der ersten Programmschnittstelle (8) auf die eine oder die mehreren Hardware-Komponenten (2, 3, 4, 5) unterbunden ist, und wobei innerhalb des Verarbeitungsprogramms (9) ein Filter implementiert ist zur Filterung von Informationen, die von der oder den Hardware-Komponenten (2, 3, 4, 5) bereitgestellt und vermittels der ersten Programmschnittstelle (8) an das Verarbeitungsprogramm (9) übergeben werden.

8. Benutzer-Terminal (1) nach Anspruch 7, wobei der Filter eingerichtet ist, Kommando-/Datenblöcke eines

Kommunikationsprotokolls innerhalb der bereitgestellten

Informationen gemäß vorbestimmter Kriterien zu analysieren und definierte Informationen innerhalb der Kommando- /Datenblöcke zu entfernen oder durch andere Informationen zu ersetzen .

9. Benutzer-Terminal (1) nach Anspruch 7 oder 8, wobei die eine oder mehreren Hardware-Komponenten (2, 3, 4, 5) des Benutzer-Terminals (1) ein berührungsempfindliches Display (3) und/oder ein Karten-Lesegerät (2, 5) umfassen, und wobei die Informationen aus einer am berührungsempfindlichen Display (3) registrierten Benutzereingabe und/oder aus einem Einlesen von Kartendaten einer Benutzerkarte am Karten- Lesegerät (2, 5) erfassbar sind.

10. Benutzer-Terminal (1) nach Anspruch 9, wobei das

Benutzer-Terminal (1) mehrere der Hardware-Komponenten (2, 3, 4, 5) umfasst und die Hardware-Komponenten (2, 3, 4, 5) neben dem berührungsempfindlichen Display (3) und/oder dem Karten- Lesegerät (2, 5) zusätzlich ein Verschlüsselungsmodul (4) umfassen,

wobei das Verschlüsselungsmodul (4) eingerichtet ist,

erfasste Informationen zu verschlüsseln und die

verschlüsselten Informationen vermittels der ersten

Programmschnittstelle (8) dem Verarbeitungsprogramm (9) zu übergeben, und

wobei das Verarbeitungsprogramm (9) eingerichtet ist,

Informationen, die die verschlüsselten Informationen

umfassen, vermittels der zweiten Programmschnittstelle (10) an das Benutzerprogramm (11) zu übergeben.

11. Benutzer-Terminal (1) nach einem der Ansprüche 7 bis 10, wobei das Benutzer-Terminal (1) ein elektronisches Bezahl- Terminal ist und das Benutzerprogramm (11) zur Abwicklung eines elektronischen Bezahlvorgangs eingerichtet ist.

Description:
Beschreibung

Verfahren zur Absicherung eines Zugriffs auf Informationen innerhalb eines Benutzer-Terminals sowie derartiges Benutzer- Terminal

Die Erfindung betrifft ein Verfahren zur Absicherung eines Zugriffs auf Informationen innerhalb eines Benutzer-Terminals sowie ein solches Benutzer-Terminal.

In Benutzer-Terminals muss aus Sicherheitsgründen ein Zugriff auf sensible, insbesondere sicherheitsrelevante Daten

abgesichert beziehungsweise beschränkt werden. Ferner ist in Benutzer-Terminals, die zum Beispiel eine Benutzereingabe über ein berührungsempfindliches Display empfangen oder

Kartendaten über einen Kartenleser einiesen, während eines sicherheitsrelevanten Prozesses oder einer

sicherheitsrelevanten Anwendung sicherzustellen, dass

Informationen, die aus der Benutzereingabe oder dem Einlesen der Kartendaten resultieren, abgesichert bzw. ausschließlich einer vorbestimmten Anwendung beziehungsweise einem

vorbestimmten Benutzerprogramm übergeben werden, ohne dass andere Anwendungen oder andere Benutzerprogramme, die während des Betriebes des Benutzer-Terminals laufen, derartige

Informationen erhalten können. Derartige Aspekte sind

insbesondere bei Benutzer-Terminals relevant, die

sicherheitsrelevante Aufgaben erfüllen, zum Beispiel bei sogenannten elektronischen Bezahl-Terminals , die

elektronische Bezahlvorgänge ermöglichen und in denen

sicherheitsrelevante Informationen verarbeitet und zwischen den einzelnen Komponenten ausgetauscht werden. Bisherige Lösungen sehen vor, eine Authentifizierung von Benutzerprogrammen, die während des Betriebes des Benutzer- Terminals ablaufen, über Zertifikate abzusichern und zu prüfen. Eine solche Lösung ist zum Beispiel aus der

Druckschrift US 9,715,600 B2 bekannt. Solche Lösungen haben jedoch den Nachteil, dass Benutzerprogramme trotz gültiger Sicherheitszertifikate unmittelbar Zugriff auf

sicherheitsrelevante Hardware-Komponenten innerhalb des Benutzer-Terminals erlangen und unerlaubten Zugriff auf sensible Daten erhalten können. Hierbei besteht somit die Gefahr, dass Benutzerprogramme die Hardware-Komponenten manipulieren oder ausnutzen, um an sicherheitsrelevante

Informationen zu gelangen, die jedoch nicht für eine

Verarbeitung innerhalb dieser Benutzerprogramme vorgesehen sind. Insbesondere bei multifunktionalen Benutzer-Terminals, auf denen verschiedenste Drittanbieter-Programme und

Applikationen installiert werden können, kann ein Schutz über Sicherheitszertifikate unter Umständen unzureichend sein.

Es ist somit eine Aufgabe der vorliegenden Erfindung ein Verfahren sowie ein Benutzer-Terminal der eingangs genannten Art zu beschreiben, die eine verbesserte Absicherung eines Zugriffs auf Informationen innerhalb des Benutzer-Terminals erlauben .

Diese Aufgabe wird gemäß einem ersten Aspekt durch ein

Verfahren zur Absicherung eines Zugriffs auf Informationen innerhalb eines Benutzer-Terminals gemäß Patentanspruch 1 gelöst. Weitergehende Merkmale und Implementierungen sind in den zugehörigen Unteransprüchen offenbart.

Bei diesem Verfahren sind eine oder mehrere Hardware- Komponenten des Benutzer-Terminals vermittels einer ersten Programmschnittstelle an ein Verarbeitungsprogramm abgebunden. Das Verarbeitungsprogramm führt eine Verarbeitung von ersten Informationen durch, die von der oder den

Hardware-Komponenten bereitgestellt und vermittels der ersten Programmschnittstelle an das Verarbeitungsprogramm übergeben werden .

Ferner ist ein Benutzerprogramm vermittels einer zweiten Programmschnittstelle an das Verarbeitungsprogramm

angebunden. Das Benutzerprogramm tauscht mit dem

Verarbeitungsprogramm zweite Informationen aus.

Die zweite Programmschnittstelle unterscheidet sich von der ersten Programmschnittstelle. Ein (unmittelbarer) Zugriff des Benutzerprogramms vermittels der ersten Programmschnittstelle auf die eine oder die mehreren Hardware-Komponenten wird dabei unterbunden.

Die Verarbeitung der ersten Informationen durch das

Verarbeitungsprogramm umfasst eine Filterung der ersten

Informationen .

Das vorliegende Verfahren ermöglicht auf diese Weise eine kategorische Verhinderung eines unmittelbaren Zugriffs eines Benutzerprogramms auf abzusichernde Informationen, die von Hardware-Komponenten innerhalb des Benutzer-Terminals

bereitgestellt werden. Die Hardware-Komponenten sind

diesbezüglich über die erste Programmschnittstelle durch das Verarbeitungsprogramm, nicht aber durch das Benutzerprogramm zugänglich. Das Benutzerprogramm, und vorteilhaft auch alle anderen im Benutzer-Terminal eingerichteten

Benutzerprogramme, hat ausschließlich vermittels der zweiten Programmschnittstelle Zugriff auf das Verarbeitungsprogramm. Erste Informationen, die zwischen den Hardware-Komponenten und dem Benutzerprogramm gemäß einer vorbestimmten

Funktionalität des Benutzer-Terminals ausgetauscht werden sollen, werden zunächst über die erste Programmschnittstelle zwischen den Hardware-Komponenten und dem

Verarbeitungsprogramm ausgetauscht und vermittels des

Verarbeitungsprogramms weiter verarbeitet. Diese weitere Verarbeitung umfasst eine Filterung der ersten Informationen.

Anschließend werden zweite Informationen vermittels der zweiten Programmschnittstelle zwischen dem

Verarbeitungsprogramm und dem Benutzerprogramm ausgetauscht. Die Verarbeitung der zweiten Informationen durch das

Benutzerprogramm ist somit auf die Verwendung der zweiten Programmschnittstelle beschränkt. Die zweiten Informationen können die gefilterten ersten Informationen und/oder weitere Informationen enthalten.

Ein entsprechender Informationsaustausch zwischen allen beteiligten Komponenten innerhalb des Benutzer-Terminals kann zum Beispiel über ein Software-Protokoll gesteuert werden, das einen entsprechenden (beschränkten) Zugriff auf die jeweiligen Programmschnittstellen steuert. Die Verwendung und ggf. Konfiguration der ersten beziehungsweise zweiten

Programmschnittstellen kann vorteilhaft über vorgegebene Benutzerrechte, Zertifikate oder entsprechende Policies gesteuert werden.

Auf diese Weise ist ein abgesicherter Zugriff auf sensible Informationen innerhalb des Benutzer-Terminals eingerichtet, wobei die oben erläuterten Gefahren und Nachteile

herkömmlicher Lösungen weitestgehend unterbunden werden.

Aufgrund der Auftrennung einer Zugriffskette zwischen dem Benutzerprogramm und den Hardware-Komponenten über verschiedene Programmschnittstellen unter Zwischenschaltung des Verarbeitungsprogramms in Kombination mit einer Filterung der von den Hardware-Komponenten bereitgestellten

Informationen innerhalb des Verarbeitungsprogramms, wird ein (manipulativer) Zugriff eines Benutzerprogramms auf sensible Informationen der Hardware-Komponenten unterbunden. Somit wird sichergestellt, dass gegebenenfalls unsichere

Benutzerprogramme, zum Beispiel Programme von Drittanbietern, die auf dem Benutzer-Terminal installiert sind, keinen

(manipulativen) Zugriff auf derartige Informationen erhalten. Damit kann verhindert werden, dass sicherheitsrelevante

Informationen, die vermittels der Hardware-Komponenten verarbeitet werden, zum Beispiel personenbezogene Daten, PIN- Abfragen (PIN = Englisch: personal Identification number) , vertrauliche Informationen, Kartendaten von Bank-, Zahlungs oder Sicherheitskarten, z.B. so genannte PAN-Nummern (PAN = Englisch: primary account number) und so weiter, von nicht berechtigten Benutzerprogrammen abgegriffen werden. Durch Filterung der von den Hardware-Komponenten bereitgestellten Informationen können sensible Daten innerhalb der Sphäre des Verarbeitungsprogramms bzw. der Hardware-Komponenten

verbleiben. Diese sensiblen Daten sind dann vor einem

ungewollten Zugriff durch Benutzerprogramme geschützt.

Gegebenenfalls können die sensiblen Daten in geschützter Form, z.B. verschlüsselt, an autorisierte Benutzerprogramme weitergegeben werden.

In einer Implementierung des Verfahrens führt das

Benutzerprogramm eine Verarbeitung der zweiten Informationen durch, die vom Verarbeitungsprogramm bereitgestellt und vermittels der zweiten Programmschnittstelle an das

Benutzerprogramm übergeben werden. Die zweiten Informationen können dabei zumindest zum Teil aus den gefilterten ersten Informationen resultieren. In dieser Implementierung des Verfahrens stellt das Verarbeitungsprogramm die gefilterten Informationen (oder einen Teil der gefilterten Informationen) als die zweiten Informationen vermittels der zweiten

Programmschnittstelle dem Benutzerprogramm bereit. Das

Benutzerprogramm führt eine weitere Verarbeitung der zweiten Informationen durch.

Auf diese Weise werden die ersten Informationen vermittels einer erläuterten Filterung durch das Verarbeitungsprogramm und einer Auftrennung des Informationsaustausches über die ersten und zweiten Programmschnittstellen logisch getrennt von den zweiten Informationen, die an das Benutzerprogramm übergeben werden. Somit erhält das Benutzerprogramm

ausschließlich Informationen, die zunächst vom

Verarbeitungsprogramm gefiltert worden sind. Dadurch wird verhindert, dass das Benutzerprogramm ungewollten Zugriff auf sensible Informationen erhält, die in den ersten

Informationen enthalten sind.

Eine Anwendung dieser Implementierung ist beispielsweise dadurch gegeben, dass die ersten Informationen

personenbezogene oder ansonsten sicherheitsrelevante

Informationen sind, die derart unter Zuhilfenahme des

Verarbeitungsprogramms verarbeitet, insbesondere gefiltert, werden, dass das Benutzerprogramm lediglich einen

vorbestimmten und durch die Filterung gegebenenfalls

dezidiert eingeschränkten Zugriff auf weitere Informationen erhält. Dadurch wird verhindert, dass nicht autorisierte Benutzerprogramme Zugriff auf Informationen erhalten, die nicht für diese Benutzerprogramme bestimmt sind. Durch eine Filterung der ersten Informationen, gesteuert durch das Verarbeitungsprogramm, kann somit ein Informationsfluss hin zu vorbestimmten Benutzerprogrammen anwendungs- und

benutzerrechte-spezifisch kontrolliert und zu schützende Daten herausgefiltert werden. Ein unmittelbares Erlagen der ersten Informationen durch jegliche Benutzerprogramme

innerhalb des Benutzer-Terminals wird, wie oben erläutert, durch eine Trennung zwischen der ersten und zweiten

Programmschnittstelle unterbunden .

In einer Implementierung des Verfahrens umfassen die ersten Informationen einen oder mehrere Kommando-/Datenblöcke eines Kommunikationsprotokolls. Das Verarbeitungsprogramm

analysiert während der Filterung die einen oder mehreren Kommando-/Datenblöcke gemäß vorbestimmten Kriterien und entfernt definierte Informationen innerhalb der einen oder mehreren Kommando-/Datenblöcke oder ersetzt diese durch andere Informationen. Die Kommando-/Datenblöcke sind z.B. als sogenannte „Application Protocol Data Units" (APDU)

aufgebaut. Die Filterung innerhalb des Verarbeitungsprogramms kann dabei als APDU-Filterung implementiert sein. Z.B. kann ein Parser implementiert sein, der die APDU-Kommando- /Datenblöcke analysiert, nach vorbestimmten Befehlen,

Sequenzen, Informationen, o.ä. durchsucht, und gefundene Informationen entsprechend filtert (entfernt oder durch andere Informationen ersetzt). Z.B. können Kartendaten einer Benutzerkarte, die in den APDU-Kommando-/Datenblöcken

eingetragen sind, entsprechend verarbeitet werden. Das

Verarbeitungsprogramm kann zweite Informationen, die die gefilterten ersten Informationen zumindest teilweise

enthalten, an das Benutzerprogramm übergeben. Es ist auch möglich, dass das Benutzerprogramm einen oder mehrere APDU- Befehle an das Verarbeitungsprogramm sendet, wodurch eine Bereitstellung/Übermittlung der zweiten Informationen vom Verarbeitungsprogramm an das Benutzerprogramm ausgelöst wird.

In diversen Implementierungen des Verfahrens umfassen die eine oder mehreren Hardware-Komponenten des Benutzer- Terminals ein berührungsempfindliches Display und/oder ein Karten-Lesegerät, wobei die ersten Informationen aus einer am berührungsempfindlichen Display registrierten Benutzereingabe und/oder aus einem Einlesen von Kartendaten einer

Benutzerkarte am Karten-Lesegerät gewonnen werden. In diesem Fall können die ersten Informationen sensible Daten

enthalten, z.B. Passwörter, PINs, PANs, Kartendaten,

Bankdaten, Kontodaten, Benutzernamen, Benutzeradresse, usw. Die ersten Informationen können hier insbesondere als APDU- Kommando-/Datenblöcke zwischen den Hardware-Komponenten und dem Verarbeitungsprogramm ausgetauscht werden. Das

Verarbeitungsprogramm führt dann eine APDU-Filterung durch.

In diversen Implementierungen des Verfahrens umfasst das Benutzer-Terminal mehrere der Hardware-Komponenten, wobei die Hardware-Komponenten neben dem berührungsempfindlichen

Display und/oder dem Karten-Lesegerät zusätzlich ein

Verschlüsselungsmodul umfassen, und wobei die gewonnenen ersten Informationen vermittels des Verschlüsselungsmoduls verschlüsselt werden. Informationen, die die verschlüsselten ersten Informationen umfassen, können als zumindest ein Teil der zweiten Informationen vom Verarbeitungsprogramm an das Benutzerprogramm übergeben werden. Derartige Maßnahmen stellen neben einer Filterung der ersten Informationen eine weitere Sicherheit gegen unbefugten Zugriff auf sensible Informationen dar. Die ersten Informationen können

(bedarfsweise) verschlüsselt und in verschlüsselter Form vom Verarbeitungsprogramm an ein dezidiertes Benutzerprogramm übergeben werden. Dies hat den Vorteil, dass ein Benutzerprogramm bedarfsweise gesteuerten Zugriff auf erste (ungefilterte) Informationen vermittels des

Verarbeitungsprogramms hat. Aus Sicherheitsgründen werden solche ersten Informationen jedoch verschlüsselt, um einen unbefugten Zugriff durch andere, nicht autorisierte

Benutzerprogramme zu unterbinden. Eine Verschlüsselung kann z.B. über ein asymmetrisches Kryptographie-Verfahren

durchgeführt werden, wobei mehrere Schlüssel

(öffentlicher/privater Schlüssel) zwischen dem

Verarbeitungsprogramm und dem dezidierten Benutzerprogramm verwendet werden. Das Benutzerprogramm kann z.B. über einen intern hinterlegten öffentlichen Schlüssel des

Verarbeitungsprogramms die verschlüsselten ersten

Informationen entschlüsseln und weiterverarbeiten. Ergänzend ist auch möglich, dass gefilterte erste Informationen über das Verschlüsselungsmodul verschlüsselt werden, bevor diese als zweite Informationen an ein Benutzerprogramm übergeben werden .

Diese Implementierungen des Verfahrens können beispielsweise zur Verarbeitung eines Benutzerpasswortes, wie zum Beispiel einer PIN, verwendet werden. Dabei ist beispielsweise

möglich, dass ein Benutzer zunächst eine Benutzerkarte am Karten-Lesegerät V orhalten muss, wobei Kartendaten der

Benutzerkarte durch das Karten-Lesegerät gelesen werden, und anschließend ein Benutzerpasswort, wie zum Beispiel seine Benutzer-PIN, am berührungsempfindlichen Display des

Benutzer-Terminals eingeben muss. Alternativ können auch Implementierungen vorgesehen sein, bei denen ausschließlich eine Benutzerkarte gelesen wird oder ausschließlich eine Benutzer-PIN-Eingabe erforderlich ist. Hier sind verschiedene Möglichkeiten denkbar. Anschließend werden die so gewonnenen Informationen

(Benutzer-PIN und/oder Kartendaten) über das

Verschlüsselungsmodul, das Teil der Hardware-Komponenten ist, separat oder ergänzend zu einer Filterung dieser gewonnenen Informationen verschlüsselt. Das Verfahren kann derart implementiert sein, dass das Verschlüsselungsmodul durch das Verarbeitungsprogramm kontrolliert beziehungsweise gesteuert wird oder das Verarbeitungsprogramm bestimmte Daten an das Verschlüsselungsmodul zu deren Verarbeitung übergibt. Zum Beispiel kann das Verarbeitungsprogramm dem

Verschlüsselungsmodul einen bestimmten Schlüssel zum

Verschlüsseln der so gewonnenen Informationen übergeben.

Alternativ kann das Verfahren derart implementiert sein, dass ein entsprechender Schlüssel innerhalb des

Verschlüsselungsmoduls hinterlegt ist und das

Verschlüsselungsmodul lediglich die zu verschlüsselnden

Informationen vom Verarbeitungsprogramm mitgeteilt bekommt. Das Verschlüsselungsmodul kann beispielsweise ein

Kryptoprozessor sein. Nach Verschlüsselung der

verschlüsselnden Informationen werden die verschlüsselten Informationen vermittels der ersten Programmschnittstelle vom Verschlüsselungsmodul an das Verarbeitungsprogramm übergeben und können dort gemäß den obigen Erläuterungen gefiltert werden, falls eine derartige Filterung nicht schon vor der Verschlüsselung durchgeführt wurde. Vermittels des

Verarbeitungsprogramms werden die so verarbeiteten

Informationen über die zweite Programmschnittstelle an ein hierfür bestimmtes Benutzerprogramm des Benutzer-Terminals übergeben .

Das Benutzerprogramm kann beispielsweise ein dezidiertes Drittanbieter-Programm sein, für das die verschlüsselten Informationen zur weiteren Verarbeitung bestimmt sind. Auf diese Weise wird verhindert, dass dieses Benutzerprogramm oder sonstige Benutzerprogramme manipulativen unmittelbaren Zugriff auf die über die Hardware-Komponenten verarbeiteten Informationen erhalten. Ferner wird verhindert, dass

Drittanbieter-Benutzerprogramme Zugriff auf verarbeitete Informationen erhalten, die nicht für diese Benutzerprogramme bestimmt sind. Auf diese Weise kann das Verarbeitungsprogramm steuern, welches Benutzerprogramm welche Informationen erhält. Bestimmte Applikationen können auf diese Weise durch das Verarbeitungsprogramm kontrolliert werden, wobei eine logische Trennung des Informationsflusses zwischen den

Hardware-Komponenten und den jeweiligen Anwendungsprogrammen vermittels der Trennung der ersten und zweiten

Programmschnittstelle unter Einsatz einer Verschlüsselung und/oder Filterung der ersten Informationen erfolgt.

Wie oben erläutert, unterscheidet sich die zweite

Programmschnittstelle von der ersten Programmschnittstelle. Die erste Programmschnittstelle ermöglicht den daran

angebundenen Komponenten eine Interprozess-Kommunikation, die sich von einer Interprozess-Kommunikation unterscheidet, die die zweite Programmschnittstelle den daran angebunden

Komponenten bereitstellt . Das kann bedeuten, dass vermittels der ersten Programmschnittstelle bestimmte Funktionsaufrufe, Befehle oder Anweisungen zwischen den daran angebundenen Komponenten ausgetauscht werden können, die vermittels der zweiten Programmschnittstelle lediglich eingeschränkt oder unter Umständen gar nicht erlaubt sind. Es ist auch denkbar, dass sich alternativ oder ergänzend die Funktionsaufrufe, Befehle oder Anweisungen, die durch die erste

Programmschnittstelle bereitgestellt werden, von denjenigen unterscheiden, die die zweite Programmschnittstelle

bereitstellt . Hier sind vielerlei Ausführungen möglich. Die erste und zweite Programmschnittstelle können beispielsweise vordefinierte Anwendungsprogramm-Schnittstellen (Englisch: Application Programm Interfaces, APIs) sein.

Vorteilhaft wird ein Zugriff des Benutzerprogramms vermittels der ersten Programmschnittstelle auf die eine oder die mehreren Hardware-Komponenten dadurch unterbunden, dass eine Anbindung des Benutzerprogramms an die erste

Programmschnittstelle beziehungsweise ein Zugriff des

Benutzerprogramms auf die erste Programmschnittstelle

vollständig unterbunden wird. In dieser Konstellation ist das Benutzerprogramm logisch unmittelbar getrennt von der ersten Programmschnittstelle. Das bedeutet, dass das

Benutzerprogramm keinerlei Funktionsaufruf oder sonstige Anweisungen vermittels der ersten Programmschnittstelle durchführen kann. Es ist alternativ jedoch auch denkbar, dass das Benutzerprogramm zwar an die erste Programmschnittstelle logisch unmittelbar angebunden ist, die erste

Programmschnittstelle jedoch in Bezug auf das

Benutzerprogramm derart konfiguriert ist, dass ein

Funktionsaufruf, ein Befehl oder eine Abfrage von

Informationen der Hardware-Komponenten durch das

Benutzerprogramm vermittels der ersten Programmschnittstelle unterbunden werden. Hier sind verschiedenste

Implementierungen möglich.

In einer Implementierung des Verfahrens wird die erste

Programmschnittstelle innerhalb einer ersten Benutzerumgebung betrieben bzw. kontrolliert, während die zweite

Programmschnittstelle innerhalb einer zweiten

Benutzerumgebung betrieben bzw. kontrolliert wird. Die zweite Benutzerumgebung ist der ersten Benutzerumgebung derart hierarchisch untergeordnet, dass Benutzerrechte der zweiten Benutzerumgebung gegenüber Benutzerrechten der ersten

Benutzerumgebung eingeschränkt sind. Die erste

Benutzerumgebung kann beispielsweise eine sogenannte Root- Benutzerumgebung (root context) sein, während die zweite Benutzerumgebung eine Standardnutzer-Umgebung (user context) ist. Dadurch ist die Funktionalität der ersten

Programmschnittstelle bestimmten Benutzerrechten der ersten Benutzerumgebung unterworfen, während die Funktionalität der zweiten Programmschnittstelle bestimmten Benutzerrechten der zweiten Benutzerumgebung unterworfen ist, die sich von den Benutzerrechten der ersten Benutzerumgebung unterscheiden.

Das Verfahren kann derart implementiert sein, dass die

Benutzerrechte der zweiten Benutzerumgebung derart

eingeschränkt sind, dass vorgegebene Funktionalitäten der zweiten Programmschnittstelle innerhalb der zweiten

Benutzerumgebung lediglich verwendet werden können, jedoch innerhalb der zweiten Benutzerumgebung nicht geändert oder speziell konfiguriert werden können. Hierbei kann das

Verfahren derart implementiert sein, dass die

Funktionalitäten der zweiten Programmschnittstelle innerhalb der ersten Benutzerumgebung festgelegt werden. Alternativ kann das Verfahren derart implementiert sein, dass die

Benutzerrechte der zweiten Benutzerumgebung eine Veränderung der Konfiguration der zweiten Programmschnittstelle erlauben. Ein Zugriff auf bzw. eine Verwendung oder Konfiguration der ersten Programmschnittstelle unterliegt jedoch bei sämtlichen dieser Implementierungen ausschließlich der ersten

Benutzerumgebung .

Es ist möglich, das Verfahren derart einzurichten, dass sowohl innerhalb der ersten Benutzerumgebung als auch

innerhalb der zweiten Benutzerumgebung ein Zugriff auf die zweite Programmschnittstelle zugelassen wird. Das bedeutet, dass die zweite Programmschnittstelle von sämtlichen

Programmen (hier konkret Benutzerprogramm und

Verarbeitungsprogramm) mit entsprechenden Benutzerrechten gesteuert, benutzt oder kontrolliert werden kann. Die erste Programmschnittstelle kann dagegen nur von Programmen (zum Beispiel im hier vorliegenden Fall das Verarbeitungsprogramm und die Hardware-Komponenten) gesteuert, benutzt oder

kontrolliert werden, die über entsprechende Benutzerrechte der ersten Benutzerumgebung verfügen.

Ergänzend können auch das Verarbeitungsprogramm sowie das Benutzerprogramm entsprechend durch getrennte

Benutzerumgebungen kontrolliert werden. Dabei kann zum

Beispiel das Verarbeitungsprogramm innerhalb der ersten

Benutzerumgebung kontrolliert werden und das Benutzerprogramm innerhalb der zweiten Benutzerumgebung kontrolliert werden, wobei die zweite Benutzerumgebung gegenüber der ersten

Benutzerumgebung in ihren Benutzerrechten eingeschränkt ist. Auf diese Weise sind Zugriff- und Steuerrechte des

Benutzerprogramms gegenüber Zugriff- und Steuerrechten des Verarbeitungsprogramms eingeschränkt. Vorteilhaft erhalten sämtliche Benutzerprogramme, die während eines Betriebes des Benutzer-Terminals laufen, ausschließlich Benutzerrechte der zweiten Benutzerumgebung, während das Verarbeitungsprogramm dem gegenüber erweiterte Benutzerrechte, zum Beispiel der ersten Benutzerumgebung, erhalten kann.

In einer Implementierung des Verfahrens sind die eine oder mehreren Hardware-Komponenten des Benutzer-Terminals und/oder das Verarbeitungsprogramm vermittels der ersten

Programmschnittstelle an ein Darstellungsprogramm angebunden. Das Darstellungsprogramm führt eine Verarbeitung von dritten Informationen zur Darstellung auf einem Display des Benutzer- Terminals durch. Die dritten Informationen werden zwischen dem Darstellungsprogramm und der oder den Hardware- Komponenten beziehungsweise dem Verarbeitungsprogramm

vermittels der ersten Programmschnittstelle ausgetauscht. Hinsichtlich einer Konfiguration des Darstellungsprogramms bezüglich der ersten Programmschnittstelle beziehungsweise bezüglich Benutzerrechten einer oben erläuterten ersten

Benutzerumgebung können die gleichen Vorkehrungen gelten, wie sie in Bezug auf das Verarbeitungsprogramm oben erläutert worden sind. Das Darstellungsprogramm ist, wie die Hardware- Komponenten und das Verarbeitungsprogramm, an die erste

Programmschnittstelle angebunden und dient zur Darstellung von dritten Informationen auf einem Display des Benutzer- Terminals. Die dritten Informationen können den ersten und/oder zweiten Informationen entsprechen, derartige

Informationen enthalten oder sich von den ersten oder zweiten Informationen unterscheiden.

Das Darstellungsprogramm kann beispielsweise Hinweisdialoge, Nachrichten oder Benutzeraufforderungen auf einem Display, gegebenenfalls auf einem berührungsempfindlichen Display, darstellen, die einen Benutzer des Benutzer-Terminals zur Verwendung oder Funktonalität der Hardware-Komponenten anleiten. Beispielsweise kann das Darstellungsprogramm ein Dialogfeld im Display anzeigen, wonach der Benutzer des

Benutzer-Terminals aufgefordert wird, eine bestimmte Eingabe an einer oder mehreren Hardware-Komponenten durchzuführen oder allgemein eine bestimmte Interaktion mit einer oder mehreren Hardware-Komponenten zu vollführen. Das

Darstellungsprogramm kann beispielsweise ein sogenanntes Graphical User Interface (GUI) sein. In einer Implementierung des Verfahrens ist das

Benutzerprogramm vermittels der zweiten Programmschnittstelle an das Darstellungsprogramm angebunden. Dabei führt das Darstellungsprogramm eine Verarbeitung von vierten

Informationen zur Darstellung auf dem Display des Benutzer- Terminals durch, wobei die vierten Informationen zwischen dem Darstellungsprogramm und dem Benutzerprogramm vermittels der zweiten Programmschnittstelle ausgetauscht werden. Auf diese Weise kann das Benutzerprogramm vermittels der zweiten

Programmschnittstelle, neben dem Verarbeitungsprogramm, auf das Darstellungsprogramm zugreifen, um bestimmte

Informationen (vierte Informationen) mit dem

Darstellungsprogramm auszutauschen. Beispielsweise kann das Benutzerprogramm bestimmte benutzerprogramm-spezifische

Dialogfelder, Hinweise oder ähnliches des

Darstellungsprogramms auf dem Display des Benutzer-Terminals zur Anzeige bringen. Allerdings gilt auch hier, wie bezüglich des Verarbeitungsprogramms, dass das Benutzerprogramm

ausschließlich vermittels der zweiten Programmschnittstelle mit dem Darstellungsprogramm kommunizieren kann

(eingeschränkte Interprozesskommunikation vermittels der zweiten Programmschnittstelle) , ohne dass das

Benutzerprogramm vermittels der ersten Programmschnittstelle Zugriff auf weitergehende Informationen oder Funktionalitäten hat, die das Darstellungsprogramm mit dem

Verarbeitungsprogramm und/oder den Hardware-Komponenten über die erste Programmschnittstelle austauscht.

In diversen Implementierungen des Verfahrens wird während eines Austausches der zweiten Informationen zwischen dem Verarbeitungsprogramm und dem Benutzerprogramm vermittels der zweiten Programmschnittstelle und/oder während eines

Austausches der dritten Informationen zwischen dem Darstellungsprogramm und der oder den Hardware-Komponenten beziehungsweise dem Verarbeitungsprogramm vermittels der ersten Programmschnittstelle ein Austausch der vierten

Informationen zwischen dem Darstellungsprogramm und dem

Benutzerprogramm vermittels der zweiten Programmschnittstelle unterbunden. Das bedeutet, dass währenddessen das

Benutzerprogramm keinen Zugriff auf das Darstellungsprogramm vermittels der zweiten Programmschnittstelle hat. In diesem Fall erfolgt lediglich eine Informationsübertragung zwischen dem Darstellungsprogramm und den Hardware-Komponenten

beziehungsweise dem Verarbeitungsprogramm vermittels der ersten Programmschnittstelle oder ein Austausch von

Informationen zwischen dem Verarbeitungsprogramm und dem Benutzerprogramm vermittels der zweiten

Programmschnittstelle .

Beispielsweise kann dadurch verhindert werden, dass das Benutzerprogramm einen manipulativen Zugriff auf das

Darstellungsprogramm erhält, wenn sensible Informationen zwischen sonstigen Komponenten des Benutzer-Terminals ausgetauscht werden, die (in dieser Form) nicht für das Benutzerprogramm bestimmt sind. Weiterhin kann auf diese Weise verhindert werden, dass sonstige Benutzerprogramme manipulativen Zugriff auf das Darstellungsprogramm und/oder das Verarbeitungsprogramm erhalten, während entsprechende sensible Informationen zwischen sonstigen Komponenten des Benutzer-Terminals ausgetauscht werden, die nicht für die weiteren Benutzerprogramme bestimmt sind. Auf diese Weise kann zum Beispiel verhindert werden, dass Benutzerprogramme von Drittanbietern Funktionen oder Befehle der zweiten

Programmschnittstelle aufrufen können, während sensible

Informationen im Benutzer-Terminal verarbeitet werden, die nicht für diese Drittanbieter-Benutzerprogramme bestimmt sind .

In diversen Implementierungen wird das Verfahren während eines elektronischen Bezahlvorgangs des Benutzer-Terminals durchgeführt. Der elektronische Bezahlvorgang kann

beispielsweise dadurch ablaufen, dass ein Benutzer eine elektronische Bankkarte an einem hierfür eingerichteten

Karten-Lesegerät der oben erläuterten Art einiesen lässt, wobei vermittels eines oben dargestellten

Darstellungsprogramms bestimmte Anweisungen, Dialogfelder oder Ähnliches an einem Display angezeigt werden.

Beispielsweise kann gesteuert durch das Verarbeitungsprogramm vermittels der ersten Programmschnittstelle und gesteuert durch das Darstellungsprogramm nach Einlesen und Verifizieren von Kartendaten der elektronischen Bankkarte ein Dialogfeld auf dem Display angezeigt werden, das den Benutzer zur

Eingabe einer Benutzer-PIN auffordert. Der Benutzer kann daraufhin eine Benutzer-PIN am Benutzer-Terminal eingeben. Hierfür kann ein vom Display separates Eingabefeld vorgesehen sein. Alternativ kann das Display berührungsempfindlich eingerichtet sein, sodass der Benutzer unmittelbar am Display eine Eingabe vornehmen kann. Die Eingabedaten werden über das Display beziehungsweise das Eingabefeld registriert und dem Verarbeitungsprogramm übergeben. Dies geschieht ebenfalls über die erste Programmschnittstelle. Zusätzlich kann dieser Prozess durch entsprechende Hinweise, Nachrichten oder

Dialogfelder gesteuert durch das Darstellungsprogramm auf dem Display unterstützt werden. Auch dies geschieht über eine Interprozess-Kommunikation zwischen den beteiligten

Komponenten vermittels der ersten Programmschnittstelle. Die auf diese Weise gewonnenen Informationen können gesteuert durch das Verarbeitungsprogramm gemäß der oben erläuterten Funktionsweise gefiltert und/oder unter Zuhilfenahme eines Verschlüsselungsmoduls der oben erläuterten Art verschlüsselt werden. Ein entsprechender Informationsaustausch zwischen den beteiligten Komponenten erfolgt ebenfalls vermittels der ersten Programmschnittstelle. Nach Verschlüsselung/Filterung der entsprechenden Informationen werden diese über das

Verarbeitungsprogramm und die zweite Programmschnittstelle schließlich an ein dezidiertes Benutzerprogramm des Benutzer- Terminals übergeben, wobei das Benutzerprogramm

beispielsweise ein Bezahlprogramm eines

Zahlungsdienstleisters ist, dessen entsprechende Applikation auf dem Benutzer-Terminal installiert ist. Dieses

Benutzerprogramm erhält somit gesteuert durch das

Verarbeitungsprogramm vermittels der zweiten

Programmschnittstelle dezidiert bestimmte Informationen und kann diese innerhalb des Benutzerprogramms weiter

verarbeiten. Beispielsweise können bestimmte personenbezogene Daten des Benutzers vom Benutzerproramm an einen entfernten Authentifizierungs-Server einer Bank versendet werden, um den Benutzer zu authentifizieren und für den Bezahlvorgang freizugeben. Der Vorteil eines derartig gesteuerten

Bezahlvorgangs vermittels des hier erläuterten Verfahrens besteht darin, dass unsichere Benutzerprogramme keinen unmittelbaren Zugriff auf abzusichernde Informationen

erhalten. Ferner wird verhindert, dass derlei Informationen an Benutzerprogramme weitergegeben werden, die nicht für diese Benutzerprogramme bestimmt sind. Auf diese Weise wird ein sicherer Zugriff auf sensible Informationen innerhalb des Benutzer-Terminals gewährleistet und ein manipulativer

Zugriff auf diese sensiblen Informationen durch

nichtautorisierte Benutzerprogramme unterbunden. Gemäß einem zweiten Aspekt wird die obige Aufgabe durch ein Benutzer-Terminal gemäß dem nebengeordneten Patentanspruch 7 gelöst. Vorteilhafte Ausführungsformen sind in den

zugehörigen Unteransprüchen offenbart.

Das Benutzer-Terminal weist eine oder mehrere Hardware- Komponenten, ein Verarbeitungsprogramm und ein

Benutzerprogramm auf. Die eine oder mehreren Hardware- Komponenten sind vermittels einer ersten

Programmschnittstelle an das Verarbeitungsprogramm

angebunden. Das Benutzerprogramm ist vermittels einer zweiten Programmschnittstelle an das Verarbeitungsprogramm

angebunden. Die zweite Programmschnittstelle unterscheidet sich von der ersten Programmschnittstelle. Das Benutzer- Terminal ist derart konfiguriert, dass ein (unmittelbarer) Zugriff des Benutzerprogramms vermittels der ersten

Programmschnittstelle auf die eine oder die mehreren

Hardware-Komponenten unterbunden ist. Innerhalb des

Verarbeitungsprogramms ist ein Filter implementiert zur Filterung von Informationen, die von der oder den Hardware- Komponenten bereitgestellt und vermittels der ersten

Programmschnittstelle an das Verarbeitungsprogramm übergeben werden. Auch in Bezug auf ein derartiges Benutzer-Terminal gelten die im Zusammenhang mit dem obigen Verfahren

erläuterten Vorteile analog.

In diversen Ausführungsformen des Benutzer-Terminals ist der Filter eingerichtet, Kommando-/Datenblöcke eines

Kommunikationsprotokolls innerhalb der bereitgestellten

Informationen gemäß vorbestimmter Kriterien zu analysieren und definierte Informationen innerhalb der Kommando- /Datenblöcke zu entfernen oder durch andere Informationen zu ersetzen. Die Kommando-/Datenblöcke sind z.B. als sogenannte „Application Protocol Data Units" (APDU) aufgebaut. Der

Filter innerhalb des Verarbeitungsprogramms kann dabei als APDU-Filter implementiert sein. Z.B. kann ein Parser

implementiert sein, der eingerichtet ist die APDU-Kommando- /Datenblöcke zu analysieren, nach vorbestimmten Befehlen, Sequenzen, Informationen, o.ä. zu durchsuchen, und gefundene Informationen entsprechend zu filtern (zu entfernen oder durch andere Informationen zu ersetzen) . Auch hier gelten die im Zusammenhang mit dem obigen Verfahren erläuterten Aspekte analog .

In diversen Ausführungsformen des Benutzer-Terminals umfassen die eine oder mehreren Hardware-Komponenten des Benutzer- Terminals ein berührungsempfindliches Display und/oder ein Karten-Lesegerät . Die Informationen sind aus einer am

berührungsempfindlichen Display registrierten Benutzereingabe und/oder aus einem Einlesen von Kartendaten einer

Benutzerkarte am Karten-Lesegerät erfassbar.

In diversen Ausführungsformen umfasst das Benutzer-Terminal mehrere der Hardware-Komponenten, wobei die Hardware- Komponenten neben dem berührungsempfindlichen Display

und/oder dem Karten-Lesegerät zusätzlich ein

Verschlüsselungsmodul umfassen. Das Verschlüsselungsmodul ist eingerichtet, erfasste Informationen, die aus einer am berührungsempfindlichen Display registrierten Benutzereingabe beziehungsweise aus einem Einlesen von Kartendaten einer Benutzerkarte am Karten-Lesegerät erfasst werden, zu

verschlüsseln und die verschlüsselten Informationen

vermittels der ersten Programmschnittstelle dem

Verarbeitungsprogramm zu übergeben. Das Verarbeitungsprogramm ist eingerichtet, die erfassten Informationen vor oder nach einer Verschlüsselung entsprechend den obigen Vorgaben zu filtern. Das Verarbeitungsprogramm ist ferner eingerichtet, Informationen, die die verschlüsselten und ggf. gefilterten Informationen umfassen, vermittels der zweiten

Programmschnittstelle an das Benutzerprogramm zu übergeben.

Das Benutzer-Terminal ist vorteilhaft ein elektronisches Bezahl-Terminal , wobei das Benutzerprogramm zur Abwicklung eines elektronischen Bezahlvorgangs eingerichtet ist. Auch hier gelten die obigen Erläuterungen analog.

Sämtliche hier dargestellten Implementierungen, Merkmale und Aspekte des oben erläuterten Verfahrens finden in

strukturellen Merkmalen des Benutzer-Terminals Niederschlag und umgekehrt.

Die vorliegende Erfindung wird anhand eines

Ausführungsbeispiels unter Zuhilfenahme einer Zeichnung nachfolgend näher erläutert.

Die Figur zeigt ein Benutzer-Terminal 1, in dem ein

Benutzerprogramm 11, ein Verarbeitungsprogramm 9 und ein Darstellungsprogramm 13 installiert sind und bei Betrieb des Benutzer-Terminals 1 ablaufen. Neben dem Benutzerprogramm 11 können ein oder mehrere weitere Benutzerprogramme 12

installiert sein. Die Benutzerprogramme 11 beziehungsweise 12 können beispielsweise bestimmte Drittanbieter-Programme oder Softwareapplikationen sein, die von (oder für)

Drittanbieter (n) auf dem Benutzer-Terminal 1 installiert sind und vorbestimmte Funktionalitäten für Benutzer zur Verfügung stellen. Auf diese Weise kann ein multifunktionales Benutzer- Terminal 1 realisiert werden. Das Benutzerprogramm 11 ist beispielsweise ein Bezahlprogramm eines Zahlungsdienstleisters , wie zum Beispiel einer Bank, zur Abwicklung eines elektronischen Bezahlvorgangs. Das

Benutzerprogramm 11 umfasst bestimmte Funktionalitäten beziehungsweise Funktionen oder Funktionsblöcke 16, die die Funktionalität des Benutzerprogramms 11 vorgeben. Die

Funktionsblöcke 16 können Funktionen für den elektronischen Zahlungsverkehr, z.B. einen sogenannten EMVCo Stack, und oder ein Netzwerk-Framework, z.B. ein sogenanntes Agnos-Framework, umfassen .

Das Verarbeitungsprogramm 9 (z.B. als „gpiDBus" bezeichnet) umfasst bestimmte Funktionsblöcke 14, die zur Funktionalität des Verarbeitungsprogramms 9 eingerichtet sind.

Beispielsweise können die Funktionsblöcke 14 bestimmte aufzurufende Programmfunktionen zur Verarbeitung von Daten und Informationen innerhalb des Verarbeitungsprogramms 9 umfassen. Diese können z.B. auf PIN bezogene (PIN related), auf Karten/Kartenleser bezogene (card related) , auf

Verschlüsselung bezogene (crypto related) oder auf

Magnetstreifen/Magnetstreifenleser bezogene (MSR related) Programmfunktionen sein.

Innerhalb des Verarbeitungsprogramms 9, z.B. innerhalb der Funktionsblöcke 14, sind ein oder mehrere Filter zur

Filterung von Daten und Informationen innerhalb des

Verarbeitungsprogramms 9 implementiert. Der oder die Filter umfassen z.B. einen oder mehrere Parser, die die

Informationen analysieren, durchsuchen und gefundene

Informationen nach vorgegebenen Kriterien filtern (entfernen oder durch andere Informationen ersetzen) . Der oder die Filter können als APDU-Filter implementiert sein, wobei die zu filternden Informationen einen oder mehrere Kommando-/Datenblöcke eines APDU-

Kommunikationsprotokolls umfassen. Das Verarbeitungsprogramm 9 analysiert während der Filterung die einen oder mehreren APDU-Kommando-/Datenblöcke gemäß vorbestimmten Kriterien und entfernt definierte Informationen innerhalb der einen oder mehreren APDU-Kommando-/Datenblöcke oder ersetzt diese durch andere Informationen. Z.B. ist ein APDU-Parser implementiert, der die APDU-Kommando-/Datenblöcke analysiert, nach

vorbestimmten Befehlen, Sequenzen, Informationen, o.ä.

durchsucht, und gefundene Informationen entsprechend filtert (entfernt oder durch andere Informationen ersetzt) .

Der oder die Filter können spezielle Filter für spezielle Funktionen/Funktionsblöcke 14 sein. Z.B. ist ein Filter für Informationen/Daten von Programmfunktionen eingerichtet, die auf Karten/Kartenleser bezogene (card related)

Programmfunktionen sind. Ein anderer Filter kann dagegen für Informationen/Daten von Programmfunktionen eingerichtet sein, die auf Magnetstreifen/Magnetstreifenleser bezogene (MSR related) Programmfunktionen sind. Alternativ kann auch ein Filter eingerichtet sein, der für diverse verschiedene der erläuterten Programmfunktionen eingerichtet ist.

Das Darstellungsprogramm 13 umfasst bestimmte Funktionsblöcke 15, die über das Darstellungsprogramm 13 verarbeitet werden können. Beispielsweise ist das Darstellungsprogramm 13 ein GUI, wobei die Funktionsblöcke 15 bestimmte Dialogfelder, Nachrichten oder sonstige Anweisungen zur Darstellung auf einem Display des Benutzer-Terminals 1 umfassen. Diese können z.B. Dialoge der Form „showButtonDlg" , „showImageDlg" , „showMessageDlg" , „showAmount", „showListDlg" , „EnterPINDlg" usw. sein.

Neben den erläuterten Programmen weist das Benutzer-Terminal 1 vorbestimmte Hardware-Komponenten 2 bis 7 auf. Die

Hardware-Komponenten 2, 3, 4 und 5 stellen dabei spezielle, ggf. speziell abzusichernde, Hardware-Komponenten dar. Diese umfassen Hardware-Komponenten zur Erfassung beziehungsweise Verarbeitung von zu schützenden oder anderweitig sensiblen Informationen, wie zum Beispiel personenbezogene Daten,

Benutzerpasswörter, oder ähnliches. Die Hardware-Komponenten 2, 3, 4 und 5 umfassen einen Kartenleser 2, beispielsweise einen Smartcard-Leser, ein Display 3, beispielsweise ein berührungsempfindliches Display, ein Verschlüsselungsmodul 4, beispielsweise einen sogenannten Kryptoprozessor, und ein weiteres Lesegerät 5, das beispielsweise als

Magnetstreifenleser (MSR) eingerichtet ist.

Die weiteren Hardware-Komponenten 6 und 7 können

beispielsweise Anzeigeelemente, Bedienelemente oder weitere Erfassungselemente, wie zum Beispiel Scanner und so weiter, umfassen. Die Scanner können beispielsweise einen Handvenen- Scanner oder einen Dokumenten-Scanner umfassen.

Das Verarbeitungsprogramm 9, das Darstellungsprogramm 13 sowie die Hardware-Komponenten 2, 3, 4 und 5 sind über eine erste Programmschnittstelle 8 (z.B. als „DBusSession"

bezeichnet) miteinander gekoppelt. Über die erste

Programmschnittstelle 8 können diese Komponenten

untereinander Informationen austauschen. Ein Austausch kann über ein vorbestimmtes Software-Protokoll erfolgen, das die erste Programmschnittstelle 8 steuert. Dagegen ist das Benutzerprogramm 11 und ggf. auch weitere Benutzerprogramme 12 über eine zweite Programmschnittstelle

10 (z.B. als „DBusSystem" bezeichnet) sowohl an das

Verarbeitungsprogramm 9 als auch an das Darstellungsprogramm 13 angebunden. Auf diese Weise erhält das Benutzerprogramm 11 Zugriff auf das Verarbeitungsprogramm 9 beziehungsweise das Darstellungsprogramm 13, nicht jedoch unmittelbaren Zugriff auf die Hardware-Komponenten 2, 3, 4 und 5 vermittels der ersten Programmschnittstelle 8. Vielmehr ist die erste

Programmschnittstelle 8 logisch derart von der zweiten

Programmschnittstelle 10 getrennt, dass ein unmittelbarer Aufruf von Funktionen, Befehlen oder ein Erhalten von

Informationen durch das Benutzerprogramm 11 von den Hardware- Komponenten 2 bis 5 unterbunden wird. Die beiden

Programmschnittstellen 8 und 10 sind z.B. APIs.

Im Benutzer-Terminal 1 sind unterschiedliche

Benutzerumgebungen 17 und 18 eingerichtet. Diese

Benutzerumgebungen 17, 18 definieren unterschiedliche

Benutzerrechte hinsichtlich einer Konfiguration

beziehungsweise eines Zugriffs auf die erste beziehungsweise zweite Programmschnittstelle 8 und 10 beziehungsweise auf die einzelnen Programme, insbesondere das Verarbeitungsprogramm 9, das Darstellungsprogramm 13 und das Benutzerprogramm 11 beziehungsweise 12. Die erste Benutzerumgebung 17 ist

beispielsweise eine sogenannte Root-Benutzerumgebung, während die zweite Benutzerumgebung 18 eine Standardnutzer-Umgebung ist. Eine entsprechende logische Zugriffstrennung bzw.

spezielle Absicherung ist in der Figur durch eine senkrechte gestrichelte Linie durch das Benutzer-Terminal 1 bzw. durch dunkle Balken an den Komponenten 2, 3, 4, 5 und 8 angedeutet. Dadurch soll symbolisiert werden, dass die Benutzerprogramme

11 und 12 beziehungsweise eine Nutzung, Kontrolle oder Konfiguration der zweiten Programmschnittstelle 10 innerhalb der zweiten Benutzerumgebung 18 eingerichtet sind, während das Verarbeitungsprogramm 9 und das Darstellungsprogramm 13 beziehungsweise eine Nutzung, Kontrolle oder Konfiguration der ersten Programmschnittstelle 8 beziehungsweise ein

Zugriff auf die Hardware-Komponenten 2 bis 5 innerhalb der ersten Benutzerumgebung 17 eingerichtet sind. Die weiteren Hardware-Komponenten 6 und 7 können derart "offen"

eingerichtet sein, dass diese unmittelbar von den

Benutzerprogrammen 11 und 12 innerhalb der zweiten

Benutzerumgebung 18 angesteuert werden können.

Aufgrund einer derartigen Implementierung des Benutzer- Terminals 1 ist ein sicherer Zugriff auf die Hardware- Komponenten 2 bis 5 und ein abgesicherter Zugriff auf

Informationen, die durch die Hardware-Komponenten 2 bis 5 generiert oder erfasst werden, während eines programmatischen Ablaufs einer bestimmten Funktionalität des Benutzer- Terminals 1 möglich.

Das Benutzer-Terminal 1 wird beispielsweise für einen

elektronischen Bezahlvorgang verwendet. Der Bezahlvorgang wird durch das Benutzerprogramm 11 initiiert beziehungsweise ausgelöst und ein entsprechender Funktionsaufruf vermittels der zweiten Programmschnittstelle 10 in das

Verarbeitungsprogramm 9 und/oder in das Darstellungsprogramm 13 durchgeführt. Dieser Funktionsaufruf kann z.B. ein APDU- Funktionsaufruf sein. Hierbei kann beispielsweise ein

bestimmtes Dialogfeld über das Darstellungsprogramm 13 auf dem Display 3 des Benutzer-Terminals 1 einem Benutzer dargestellt werden. Das Verarbeitungsprogramm 9 steuert vermittels der ersten Programmschnittstelle 8 beispielsweise den Kartenleser 2 oder 5 an und löst gesteuert durch das Darstellungsprogramm 13 und die erste Programmschnittstelle 8 eine Darstellung eines Hinweisdialoges auf dem Display 3 aus, durch den der Benutzer aufgefordert wird, eine bestimmte Benutzereingabe durchzuführen. Dies kann beispielsweise eine Eingabe einer Benutzer-PIN umfassen. Der Benutzer kann zum Beispiel über das berührungsempfindliche Display 3 eine

Benutzer-PIN am Display 3 eingeben, wobei diese Information über die erste Programmschnittstelle 8 an das

Verarbeitungsprogramm 9 weitergegeben wird. Gegebenenfalls kann in diesem Zusammenhang auch gesteuert über das

Darstellungsprogramm 13 ein bestimmter Hinweisdialog oder eine bestimmte Nachricht am Display 3 ausgegeben werden.

Die vom Kartenleser 2 beziehungsweise 5 oder über das Display 3 gewonnenen Informationen (Kartendaten/Magnetstreifendaten einer Benutzerkarte und/oder Benutzer-PIN) können vom

Verarbeitungsprogramm 9 weiter verarbeitet werden. Hierzu kann das Verarbeitungsprogramm 9 beispielsweise eine

Filterung der gewonnenen Informationen durchführen, indem der hierfür bestimmte Filter die gewonnenen Informationen nach den Kartendaten/Magnetstreifendaten der eingelesenen

Benutzerkarte und/oder nach der eingegebenen Benutzer-PIN durchsucht. Diese Informationen können z.B. innerhalb eines oder mehrerer APDU-Kommando-/Datenblöcke hinterlegt sein. Der Filter analysiert die APDU-Kommando-/Datenblöcke und filtert die vorgegebenen Informationen. Z.B. werden

Kartendaten/Magnetstreifendaten der eingelesenen

Benutzerkarte und/oder eine eingegebene Benutzer-PIN aus den APDU-Kommando-/Datenblöcken entfernt oder durch andere

Informationen ersetzt.

Alternativ oder ergänzend werden die vom Kartenleser 2 beziehungsweise 5 oder über das Display 3 gewonnenen Informationen (vor oder nach einer etwaigen Filterung) dem Verschlüsselungsmodul 4 übergeben, das die Informationen über einen vorgegebenen Schlüssel verschlüsselt. Der Schlüssel kann im Verschlüsselungsmodul 4 vorhinterlegt sein oder dem Verschlüsselungsmodul 4 vom Verarbeitungsprogramm 9 übergeben werden. Alternativ können die erfassten Informationen direkt von den entsprechenden Hardware-Komponenten 2, 3 und 5 über die erste Programmschnittstelle 8 den Verschlüsselungsmodul 4 übergeben werden, ohne zuvor in das Verarbeitungsprogramm 9 zu gelangen. Hier sind verschiedene Implementierungen

möglich. Die über das Verschlüsselungsmodul 4 verschlüsselten Informationen werden über die erste Programmschnittstelle 8 dem Verarbeitungsprogramm 9 übergeben.

Das Verarbeitungsproramm 9 kann die gefilterten und/oder verschlüsselten Informationen schließlich über die zweite Programmschnittstelle 10 dem Benutzerprogramm 11 zur

Verfügung stellen. Innerhalb des Benutzerprogramms 11 können die so übergebenen Informationen weiter verarbeitet werden. Beispielsweise kann eine Benutzer-PIN (die für das

Benutzerprogramm 11 nicht vom Verarbeitungsprogramm 9 aus den Informationen herausgefiltert wurde) derart weiter

verarbeitet werden, dass sie in verschlüsselter Form an einen entfernt liegenden Authentifizierungs-Server übergeben wird.

Vorteilhaft wird während des Austausches der erläuterten Informationen zwischen den Hardware-Komponenten 2 bis 5 und dem Verarbeitungsprogramm 9 beziehungsweise dem

Darstellungsprogramm 13 vermittels der ersten

Programmschnittstelle 8 ein Aufruf von Funktionalitäten durch das Benutzerprogramm 11 vermittels der zweiten

Programmschnittstelle 10 in Richtung des

Verarbeitungsprogramms 9 beziehungsweise in Richtung des Darstellungsprogramms 13 unterbunden. Auch die weiteren

Benutzerprogramme 12 können in einem entsprechenden

Funktionsaufruf in das Verarbeitungsprogramm 9

beziehungsweise in das Darstellungsprogramm 13 vermittels der zweiten Programmschnittstelle 10 gehemmt sein. Dies hat den Vorteil, dass kein manipulativer Zugriff auf das

Verarbeitungsprogramm 9 beziehungsweise das

Darstellungsprogramm 13 durch eines der Benutzerprogramme 11, 12 möglich ist, während sensible Informationen zwischen den Hardware-Komponenten 2 bis 5 und den Programmen 9 und 13 vermittels der ersten Programmschnittstelle 8 ausgetauscht werden .

Das erläuterte Benutzer-Terminal 1 ermöglicht auf diese Weise eine Absicherung eines Zugriffs auf sensible Informationen, die durch Hardware-Komponenten innerhalb des Benutzer- Terminals 1 generiert, verarbeitet oder erfasst werden.

Benutzerprogramme 11 und 12 innerhalb der Standardnutzer- Umgebung 18 haben auf diese Weise keinerlei

Zugriffsmöglichkeit auf die abzusichernden Informationen vermittels der ersten Programmschnittstelle 8, sodass die über die Hardware-Komponenten 2 bis 5 erfassten Informationen nicht unmittelbar von den Benutzerprogrammen 11 und 12 abgerufen werden können. Auch wird eine Manipulation der Hardware-Komponenten 2 bis 5 über die Benutzerprogramme 11 und 12 auf diese Weise verhindert. Ein Informationsaustausch zwischen den Hardware-Komponenten 2 bis 5 und den

Benutzerprogrammen 11 beziehungsweise 12 erfolgt dennoch gesteuert über das Verarbeitungsprogramm 9 vermittels einer Informationsübertragung zwischen der ersten

Programmschnittstelle 8 und der zweiten Programmschnittstelle 10. Ein derartiger Informationsaustausch kann beispielsweise über ein Softwareprotokoll gesteuert werden. Das Verarbeitungsprogramm 9 kann dabei bestimmte Informationen, die von den Hardware-Komponenten 2 bis 5 erfasst werden, weiter verarbeiten, bevor das Verarbeitungsprogramm 9 vermittels der zweiten Programmschnittstelle 10 die

verarbeiteten Informationen an die Benutzerprogramme 11 beziehungsweise 12 weitergibt. Eine derartige Verarbeitung sieht, wie erläutert, eine Filterung und/oder Verschlüsselung der Informationen vor. Auf diese Weise kann sichergestellt werden, dass entsprechende Informationen lediglich an

diejenigen Benutzerprogramme 11 beziehungsweise 12 in

demjenigen Sicherheitsgrad weitergegeben werden, der für diese Benutzerprogramme 11, 12 vorgesehen ist.

Die dargestellte Ausführungsform ist lediglich beispielhaft gewählt.

Bezugszeichenliste

1 Benutzer-Terminal

2 Kartenleser

3 Display

4 Verschlüsselungsmodul

5 Magnetstreifenleser

6 Anzeigeelement/Scanner/Bedienelement 7 Anzeigeelement/Scanner/Bedienelement 8 erste Programmschnittstelle

9 Verarbeitungsprogramm

10 zweite Programmschnittstelle

11 Benutzerprogramm

12 Benutzerprogramm

13 Darstellungsprogramm

14 Funktionsblöcke im Verarbeitungsprogramm

15 Funktionsblöcke im Darstellungsprogramm

16 Funktionsblöcke im Benutzerprogramm 17 erste Benutzerumgebung

18 zweite Benutzerumgebung