DE102018125358A1 - Verfahren und Vorrichtungen zum sicheren Verarbeiten von Chipkarten - Google Patents

Verfahren und Vorrichtungen zum sicheren Verarbeiten von Chipkarten Download PDF

Info

Publication number
DE102018125358A1
DE102018125358A1 DE102018125358.3A DE102018125358A DE102018125358A1 DE 102018125358 A1 DE102018125358 A1 DE 102018125358A1 DE 102018125358 A DE102018125358 A DE 102018125358A DE 102018125358 A1 DE102018125358 A1 DE 102018125358A1
Authority
DE
Germany
Prior art keywords
client device
client
server
card
processor
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.)
Pending
Application number
DE102018125358.3A
Other languages
English (en)
Inventor
Josh Triplett
Philip Hanson
Justin Moore
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.)
Intel Corp
Original Assignee
Intel Corp
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 Intel Corp filed Critical Intel Corp
Publication of DE102018125358A1 publication Critical patent/DE102018125358A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/40Authorisation, e.g. identification of payer or payee, verification of customer or shop credentials; Review and approval of payers, e.g. check credit lines or negative lists
    • G06Q20/409Device specific authentication in transaction processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/541Interprogram communication via adapters, e.g. between incompatible applications
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/08Payment architectures
    • G06Q20/12Payment architectures specially adapted for electronic shopping systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/30Payment architectures, schemes or protocols characterised by the use of specific devices or networks
    • G06Q20/34Payment architectures, schemes or protocols characterised by the use of specific devices or networks using cards, e.g. integrated circuit [IC] cards or magnetic cards
    • G06Q20/341Active cards, i.e. cards including their own processing means, e.g. including an IC or chip
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/08Payment architectures
    • G06Q20/20Point-of-sale [POS] network systems
    • G06Q20/204Point-of-sale [POS] network systems comprising interface for record bearing medium or carrier for electronic funds transfer or payment credit

Landscapes

  • Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Accounting & Taxation (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Strategic Management (AREA)
  • General Business, Economics & Management (AREA)
  • Software Systems (AREA)
  • Finance (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

Es werden Verfahren, Vorrichtungen, Systeme und Herstellungsgegenstände, um Chipkarten sicher zu verarbeiten, offenbart. Ein beispielhaftes Verfahren umfasst das Bereitstellen einer Anwendungsprogrammierschnittstelle (API) in einem Internet-Client einer Client-Einrichtung durch Ausführen einer Anweisung mit einem ersten Prozessor der Client-Einrichtung, als Antwort auf das Detektieren im Internet-Client bei der Client-Einrichtung einer Abfrage von einem Server für Kartendaten, Betreiben der API im Internet-Client bei der Client-Einrichtung, um die Kartendaten, die in einem Chip einer Chipkarte, die kommunikationstechnisch an die Client-Einrichtung gekoppelt ist, gespeichert sind, zu erhalten, durch Ausführen einer Anwendung mit dem ersten Prozessor der Client-Einrichtung und Senden der Kartendaten zum Server durch Ausführen einer Anweisung mit dem ersten Prozessor der Client-Einrichtung.

Description

  • GEBIET DER OFFENBARUNG
  • Diese Offenbarung bezieht sich im Allgemeinen auf Chipkarten und insbesondere auf Verfahren und Vorrichtungen, um Chipkarten sicher zu verarbeiten.
  • HINTERGRUND
  • In den letzten Jahren kaufen Menschen zunehmend elektronisch von ihren Computern, Tablets, Smartphones usw. ein, statt stationäre Händler aufzusuchen. In vielen Fällen besuchen sie Internetseiten für elektronischen Handel (wird auch als E-Commerce bezeichnet), um derartige Einkäufe zu tätigen.
  • Figurenliste
    • 1 stellt eine Beispielumgebung, in der eine Chipkarte sicher verarbeitet wird, in Übereinstimmung mit dieser Offenbarung dar.
    • 2 stellt eine weitere Beispielumgebung, in der eine Chipkarte sicher verarbeitet wird, in Übereinstimmung mit dieser Offenbarung dar.
    • 3 stellt noch eine weitere Beispielumgebung, in der eine Chipkarte sicher verarbeitet wird, in Übereinstimmung mit dieser Offenbarung dar.
    • 4 ist ein Blockdiagramm einer Beispielimplementierung der Beispiel-Clients von 1-3.
    • 5 ist ein Ablaufplan, der Beispielvorgänge repräsentiert, die als maschinenlesbare Anweisungen, die ausgeführt werden können, um die Beispiel-Clients von 1-3 zu implementieren, implementiert werden können.
    • 6 ist ein Blockdiagramm einer Beispielimplementierung der Beispiel-E-Commerce-Server von 1-3.
    • 7 ist ein Ablaufplan, der Beispielvorgänge repräsentiert, die als maschinenlesbare Anweisungen, die ausgeführt werden können, um die Beispiel-E-Commerce-Server von 1-3 zu implementieren, implementiert werden können.
    • 8 ist ein Blockdiagramm einer Beispielimplementierung der Beispiel-Kreditkartenverarbeitungs-Server von 1-3.
    • 9 ist ein Ablaufplan, der Beispielvorgänge repräsentiert, die als maschinenlesbare Anweisungen, die ausgeführt werden können, um die Beispiel-Kreditkartenverarbeitungs-Server von 1-3 zu implementieren, implementiert werden können.
    • 10 stellt eine Beispiel-Prozessorplattform dar, die strukturiert ist, die beispielhaften maschinenlesbaren Anweisungen von 5, 7 und 9 auszuführen, um die Beispiel-Clients, die Beispiel-E-Commerce-Server und die Beispiel-Kreditkartenverarbeitungs-Server von 1-3, 4, 6 und 8 zu implementieren.
  • Soweit möglich werden in allen Zeichnungen und in der begleitenden geschriebenen Beschreibung dieselben Bezugszeichen verwendet, um auf dieselben oder ähnliche Teile Bezug zu nehmen. Verbindungslinien, Verbindungen und Verbinder, die in den verschiedenen dargestellten Figuren gezeigt sind, sind dazu bestimmt, beispielhafte funktionelle Zusammenhänge, physische Kopplungen und/oder logische Kopplungen zwischen den verschiedenen Elementen zu repräsentieren.
  • GENAUE BESCHREIBUNG
  • Heutzutage umfassen die meisten E-Commerce-Transaktionen (z. B. die, die unter Verwendung einer Internetseite oder einer Einzelhandelsanwendung (z. B. einer angepassten Anwendung für eine IOS™-Einrichtung, eine ANDROID™-Einrichtung usw.) vorgenommen werden) eine manuelle Eingabe von Kreditkartendaten, Informationen (z. B. einer Kontonummer, eines Ablaufdatums, eines Prüfcodes usw.) oder angepasster proprietärerer Zahlungsinformationen. Weil die Kreditkartendaten manuell eingegeben werden, werden diese Typen von Transaktionen als wahrscheinlicher betrügerisch zu sein angesehen. Aktuelle E-Commerce-Transaktionen können auch für lokale Schad-Software auf einer Client-Einrichtung anfällig sein.
  • Eine Chipkarte ist eine Karte (z. B. eine Kreditkarte) aus einem beliebigen Material (z. B. Plastik, Karton usw.), mit beliebiger Form und mit beliebiger Größe, die einen Chip mit einer integrierten Schaltung (IC) oder nur einen Chip auf oder mindestens teilweise in die Karte eingebettet besitzt, der Daten sicher speichert. In einigen Beispielen wird eine Chipkarte in eine Einrichtung, die einen Chipkartenleser, der in elektrischen Kontakt mit freiliegenden Kontakten des Chips gebracht wird, wenn die Chipkarte eingesetzt wird, besitzt, physisch eingesetzt. In einigen Beispielen kann eine drahtlose oder kontaktlose Karte über eine kurze Entfernung z. B. unter Verwendung von Funkfrequenzidentifikationstechnik (RFID-Technik), Nahfeldkommunikationstechnik (NFC-Technik) usw. gelesen werden. Sowohl elektrisch lesbare als auch drahtlose Karten können mit den hier offenbarten Beispielen verwendet werden. Chipkarten werden manchmal auch als Smart-Bezahlkarten, Chip- und Pinkarten, Kreditkarten mit aktiviertem Chip usw. bezeichnet. Chipkarten für eine beliebige Anzahl von Anwendungen können unter Verwendung der hier offenbarten Beispiele implementiert werden. Deshalb wird sich die folgende Offenbarung einfach auf Chipkarten beziehen. Außerdem kann, obwohl sich die hier offenbarten Beispiele auf Kreditkartendaten beziehen, ein beliebiger Typ oder eine beliebige Menge von Daten zusammen mit den hier offenbarten Beispielen auf einer Chipkarte gespeichert werden. In einigen Beispielen ist der Chip ein EMV-Chip (Chip für Europay, MASTERCARD® und VISA®).
  • Heutzutage sind Chipkartenleser in speziell angefertigte Verkaufsstelleneinrichtungen (POS-Einrichtungen), die durch Geschäfte wie z. B. Einzelhandelsgeschäfte, Restaurants, Büros, Kioske, Tankstellen usw. verwendet werden, integriert. Die Kosten und die Komplexität des Kaufens, Installierens und Unterhaltens derartiger speziell angefertigter POS-Einrichtungen durch Einzelpersonen macht sie unpraktikabel als Einrichtungen, die durch Einzelpersonen zur persönlichen Verwendung verwendet werden. Die hier offenbarten Beispiele machen die persönliche Verwendung von Chipkarten und Chipkartenlesern durch Verbraucher kosteneffizient und praktikabel. In offenbarten Beispielen implementieren leicht verfügbare Verbrauchereinrichtung (z. B. ein Computer, ein Smartphone, ein Tablet usw.) eine internetbasierte Anwendungsprogrammierschnittstelle (API) in einem Internet-Browser, die einfache, verbraucherfreundliche Chipkartenleser mit der Verbrauchereinrichtung integriert. Durch das Ermöglichen der Verwendung von physischen Chipkarten stellen die hier offenbarten Beispiel-APIs ein einfaches und sicheres Verfahren bereit, um chipgeprüfte Kreditkartentransaktionen über das Internet zu verwenden. Die offenbarten Beispiel-APIs ermöglichen Kreditkartenabwicklern, Kreditkartendaten sicher zu prüfen, wie sie es für herkömmliche Transaktionen, in denen eine Karte physisch vorliegt (diese werden auch als Transaktionen mit vorliegender Karte bezeichnet), ausführen, wodurch das Betrugsrisiko, das mit Transaktionen, bei denen keine Karte physisch vorliegt (diese werden auch als Transaktionen ohne vorliegende Karte bezeichnet), verbunden ist, beseitigt wird. Offenbarte Beispiel-APIs stellen einen sicheren Kanal bereit, um eine physisch vorliegende Kreditkarte mittels des Hardware-Sicherheitschips, der in den meisten modernen Chip-Kreditkarten vorliegt, zu prüfen.
  • Außerdem arbeitet in einigen aktuellen Lösungen eine dritte Instanz zwischen einer Client-Einrichtung eines Anwenders und Händlern (z. B. E-Commerce-Server) und/oder Banken (z. B. Kreditkartenabwickler). Derartige Vermittler- oder Man-in-the-Middle-Lösungen erfordern, dass Endanwender, Händler und Banken der dritten Instanz ihre vertraulichen oder sensiblen Daten anvertrauen. Außerdem ist es möglich, dass dritte Instanzen nicht alle Händler und Banken unterstützen und dadurch die Verwendung der Dienste der dritten Instanz beschränken. In deutlichem Gegensatz ermöglichen die hier offenbarten Beispiele Händlern und Banken, mit dem Chip auf einer Chipkarte zu interagieren, wodurch die Notwendigkeit der Einbindung einer dritten Instanz oder die damit verbundenen Risiken vermieden werden. Stattdessen verwendet ein Anwender die Internetseite des Händlers oder der Bank, um für Waren zu bezahlen, was dem Händler und der Bank ermöglicht, die Anwendererfahrung und die Sicherheit zu steuern. Weil die offenbarten internetbasierten APIs den Händlern und Banken ermöglichen, mit dem Chip auf einer Chipkarte zu interagieren, stellen die APIs ferner eine fertige und offene Lösung bereit, die im E-Commerce-Markt leicht, weitgehend und schnell implementiert werden kann.
  • Die internetbasierten APIs, die hier offenbart werden, stellen im Gegensatz zu aktuellen proprietären Bezahlsystemen eine offene Lösung bereit und das Einlesen von Karten mittels NFC oder einem Kartenleser verbessert den Anwenderkomfort im Vergleich zu manueller Kartennummerneingabe. In einigen Beispielen lösen die internetbasierten APIs sichere Codeausführungsbereiche (die auch als sichere Enklaven bezeichnet werden) in einem Client und einer E-Commerce-Seite oder einem Kreditkartenverarbeitungs-Server aus, die einen durchgehenden sicheren Kommunikationskanal zwischen einander aufbauen, um die Sicherheit weiter zu erhöhen. In einigen Beispielen ermöglichen sichere Enklaven und sichere Kommunikationskanäle, dass ein Kreditkartenabwickler die persönlichen Daten (Name, Telefonnummer, Rechnungs-/Versandadresse usw.) einer Person direkt bereitstellt und/oder prüft. Obwohl hier Bezug auf Beispiel-Internet-Browser genommen wird, können hier eine beliebige Anzahl und/oder ein oder mehrere beliebige Typen von Beispielen von im Allgemeinen Internet-Clients, Interneteinrichtungen usw. verwendet werden, um die offenbarten internetbasierten APIs zu implementieren. In einigen Beispielen ist ein Internet-Client eine Anwendung (z. B. ein Programm, ein Dienstprogramm, ein Prozess usw.), die in einer Client-Einrichtung (z. B. ein Computer, ein Laptop, ein Smartphone, ein Tablet usw.) eines Anwenders, die mit einem Server (z. B. einem E-Commerce-Server, einem Kreditkartenverarbeitungs-Server, einem Internetseiten-Server usw.) über ein Netz (z. B. das Internet) unter Verwendung z. B. des Hypertext-Übertragungsprotokolls (HTTP), des sicheren Hypertext-Übertragungsprotokolls (HTTPS) usw. kommuniziert, ausgeführt wird. Beispiel-Internet-Clients enthalten aber sind nicht eingeschränkt auf die hier offenbarten Internet-Browser. In einigen Beispielen ist eine Interneteinrichtung eine Einrichtung, in der ein Internet-Client ausgeführt wird.
  • Nun wird detailliert auf nicht einschränkende Beispiele dieser Offenbarung, für die Beispiele in den begleitenden Zeichnungen dargestellt sind, Bezug genommen. Die Beispiele sind unten unter Bezugnahme auf die Zeichnungen beschrieben.
  • 1 stellt eine Beispielumgebung 100 dar, in der eine Chipkarte 102, die einen Chip 103 besitzt, gemäß dieser Offenbarung sicher verarbeitet wird. In der dargestellten Umgebung 100 verwendet ein Anwender 104 einen Internet-Browser 106, der in einer Client-Einrichtung 108 ausgeführt wird, um mit einer Internetseite (z. B. einer E-Commerce-Seite 110), die auf einem E-Commerce-Server 112 ausgeführt wird, zu interagieren. Beispiel-Client-Einrichtungen 108 enthalten aber sind nicht eingeschränkt auf einen Personal Computer, einen Laptop, ein Smartphone, ein Tablet usw. Der Beispiel-Internet-Browser 106 interagiert mit der E-Commerce-Seite 110 über eine beliebige Anzahl und/oder einen oder mehrere beliebige Typen von einem oder mehreren beispielhaften öffentlichen und/oder privaten Netzen 113 oder allgemeiner eine beliebige Anzahl und einen oder mehrere beliebige Typen kommunikationstechnischer Kupplungen.
  • Um den Chip 103 der Chipkarte 102 an die Client-Einrichtung 108 kommunikationstechnisch zu koppeln, ist ein beliebiger Typ eines Beispiel-Kartenlesers 114, der mit der Chipkarte 102 kompatibel ist, mit der Client-Einrichtung 108 kommunikationstechnisch gekoppelt. Beispiel-Chipkartenleser 114 sind endverbraucherfreundlich (z. B. werden im Einzelhandel verkauft usw.) und können einfach über Endverbraucherschnittstellen wie z. B. einen universellen seriellen Bus (USB), Nahfeldkommunikation (NFC), BLUETOOTH® usw. an Endverbrauchereinrichtungen installiert werden. In einigen Beispielen ist der Chipkartenleser 114 ein Teil der Client-Einrichtung 108. Zum Beispiel ein NFC-Sensor, der in ein Smartphone, einen Laptop, ein Tablet usw. eingebaut ist. In einigen Beispielen ist der Chipkartenleser 114 mit dem Chip 103 kommunikationstechnisch gekoppelt, wenn die Chipkarte 102 in den Chipkartenleser 114 eingesetzt ist. In einigen Beispielen ist der Chipkartenleser 114 an den Chip 103 kommunikationstechnisch gekoppelt, wenn die Chipkarte 102 nahe genug für z. B. NFC-Kommunikation ist.
  • Um der E-Commerce-Seite 110 zu ermöglichen, mit dem Chip 103 zu kommunizieren, implementiert der Beispiel-Internet-Browser 106 eine Beispiel-API 116. Die Beispiel-API 116 von 1 stellt eine Schnittstelle zur E-Commerce-Seite 110 dar, die der E-Commerce-Seite 110 ermöglicht, mit dem Chip 103 zu interagieren. Zum Beispiel stellt die API 116 eine oder mehrere Anweisungen bereit, die die API 116 im Namen der E-Commerce-Seite 110 ausführt. Die offenbarte Beispiel-API 116 ermöglicht zusätzlich, dass die E-Commerce-Seite 110 den Internet-Browser 106 des Anwenders hinsichtlich eines angebrachten Kartenlesers 114, der die Kommunikation mit dem Chip 103 auf der Chipkarte 102 unterstützt, abfragt. In einigen Beispielen sind die Beispiel-APIs 116, 202 (2) und 302 (3) unter Verwendung von JAVASCRIPT™ implementiert.
  • In einigen Beispielen ermöglicht die API 116, 202, 302, dass der E-Commerce-Server 112 und/oder der Kreditkartenverarbeitungs-Server 118 als Teil einer Herausforderungs-Antwort-Authentifizierung eine Authentifizierungsherausforderung zum Chip 103 auf der Chipkarte 102 sendet. Die API 116, 202, 302 antwortet durch Senden einer entsprechenden Herausforderungsantwort, die vom Chip 103 erhalten wird, zur Seite 112, 118. Im Allgemeinen schafft, installiert usw. die API 116, 202, 302 einen sicheren Kommunikationskanal zwischen dem Chip 103 auf der Chipkarte 102 und dem E-Commerce-Server 112, dem Kreditkartenverarbeitungs-Server 118 und/oder der Bank/dem Finanzinstitut, die/das die Chipkarte 102 ausgestellt hat. In einigen Beispielen unterstützt die API 116, 202, 302 den Abruf anfallender Informationen, die einem Anwender zugeordnet sind, entweder vom Chip 103 selbst oder die im Browser 106 gespeichert sind und auf der Grundlage des Vorliegens einer bestimmten Karte freigeschaltet werden. Die bereitgestellten Informationen könnten sich auf der Grundlage der vorgelegten Karte unterscheiden.
  • Dann, wenn die E-Commerce-Seite 110 z. B. Kreditkartendaten für eine Transaktion benötigt, fragt die beispielhafte E-Commerce-Seite 110 von 1 die Beispiel-API 116 ab, um zu bestimmen, ob der Internet-Browser 106 und die Hardware des Anwenders chipbasierte Transaktionen durchführen können. Wenn ja und wenn die Karte 102 nicht detektiert wird (z. B. wenn sie nicht bereits eingesetzt wurde, nicht bereits in die Nähe gebracht wurde usw.), wird der Anwender aufgefordert, die Karte 102 in den Kartenleser 114 einzusetzen oder die Karte 102 in die Nähe des Kartenlesers 114 zu bringen usw. Wenn sie eingesetzt oder in die Nähe gebracht wurde, kann die API 116 Kreditkartendaten von der Karte 102 erhalten und die Kreditkartendaten der E-Commerce-Seite 110 bereitstellen. Die E-Commerce-Seite 110 verwendet die bereitgestellten Kreditkartendaten, um die Transaktion abzuschließen, und berichtet die Transaktion zur Zahlung einem Chipkartenverarbeitungs-Server wie z. B. einem Kreditkartenverarbeitungs-Server 118 (z. B. Visa, Mastercard, Discover, American Express usw.).
  • In einigen Beispielen prüft die API 116 den Chip 103 und/oder die Kreditkartendaten, bevor sie zur E-Commerce-Seite 110 gesendet werden. In einigen Beispielen führt die E-Commerce-Seite 110 die Prüfung des Chips 103 und/oder der Kreditkartendaten durch. Die Prüfung kann z. B. unter Verwendung einer beliebigen Anzahl und/oder eines oder mehrerer beliebiger Typen von Verfahren, die für vergangene, derzeitige und/oder zukünftige Chipkarten anwendbar sind, wie z. B. Chip und PIN, Herausforderungs-Antwort usw. durchgeführt werden.
  • 2 stellt eine weitere Beispielumgebung 200 dar, in der die Beispielchipkarte 102, die den Chip 103 besitzt, gemäß dieser Offenbarung sicher verarbeitet wird. Um der E-Commerce-Seite 110 zu ermöglichen, mit dem Chip 103 zu kommunizieren, implementiert der Beispiel-Internet-Browser 106 eine Beispiel-API 202. Die Beispiel-API 202 von 2 repräsentiert eine Schnittstelle zur E-Commerce-Seite 110, die ermöglicht, dass die E-Commerce-Seite 110, den Internet-Browser 106 des Anwenders hinsichtlich eines angebrachten Kartenlesers 114, der die Kommunikation mit dem Chip 103 auf der Chipkarte 102 unterstützt, abfragt. In einigen Beispielen ermöglicht die API 202 zusätzlich, dass die E-Commerce-Seite 110 die Ausführung einer sicheren Enklave 204 bei der Client-Einrichtung 108, die mit einer sicheren Enklave 206 beim E-Commerce-Server 112 über eine sichere Kommunikationsverbindung 208, die die API 202 zwischen den sicheren Enklaven 204, 206 durch sicheres Tunneln der Kommunikationsverbindung durch eine weniger sichere Verbindung (z. B. eine, der durch die Enklaven nicht vertraut wird) aufbaut, interagiert, auslöst. Die sichere Enklave 204 bei der Client-Einrichtung 108 führt eine Schnittstelle aus, die ermöglicht, dass die sichere Enklave 206 beim E-Commerce-Server 112 mit dem Chip 103 über die sichere Kommunikationsverbindung 208 sicher interagiert. In einigen Beispielen sind die sicheren Enklaven 204, 206, 304 und 306 (3), die hier offenbart werden, unter Verwendung von INTEL® Software-Schutzerweiterungen (SGX) implementiert. In einigen Beispielen sind die sicheren Kommunikationsverbindungen 208 und 308 (3) verschlüsselte Kommunikationsverbindungen.
  • In einigen Beispielen ermöglicht die Schnittstelle, die durch die sicheren Enklaven 204 (2), 304 (3) bereitgestellt wird, der zweiten Enklave 206 (2), 306 (3) bei der Seite 112, 118, als Teil einer Herausforderungs-Antwort-Authentifizierung eine Prüfherausforderung zum Chip 103 auf der Chipkarte 102 auszugeben. Die sichere Enklave 204, 304 antwortet durch Senden einer entsprechenden Herausforderungsantwort, die vom Chip 103 erhalten wird, zur Seite 112, 118. In einigen Beispielen liefert die sichere Enklave 206 auf der E-Commerce-Seite 112 eine Bescheinigung zum Kreditkartenverarbeitungs-Server 118, die durch den Kreditkartenverarbeitungs-Server 118 geprüft werden kann.
  • Dann, wenn die E-Commerce-Seite 110 z. B. Kreditkartendaten für eine Transaktion benötigt, frägt die beispielhafte E-Commerce-Seite 110 von 1 die Beispiel-API 202 ab, um zu bestimmen, ob der Internet-Browser 106 und die Hardware des Anwenders chipbasierte Transaktionen durchführen können. Wenn ja und wenn die Karte 102 nicht bereits eingesetzt wurde oder nicht bereits in die Nähe gebracht wurde, wird der Anwender aufgefordert, die Karte 102 in den Kartenleser 114 einzusetzen oder sie in die Nähe des Kartenlesers 114 zu bringen usw. Wenn sie eingesetzt oder in die Nähe gebracht wurde, initiiert die API 202 die sichere Enklave 204 bei der Client-Einrichtung 108. Die sichere Enklave 206 beim E-Commerce-Server 112 interagiert mit der sicheren Enklave 204 bei der Client-Einrichtung 108, um die Kreditkartendaten vom Chip 103 zu erhalten. Die E-Commerce-Seite 110 verwendet die erhaltenen Kreditkartendaten, um die Transaktion abzuschließen, und berichtet die Transaktion zur Zahlung einem Kreditkartenverarbeitungs-Server 118 (z. B. Visa, Mastercard, Discover, American Express usw.).
  • In einigen Beispielen prüft die sichere Enklave 204 den Chip 103 und/oder die Kreditkartendaten, bevor sie zur sicheren Enklave 206 gesendet werden. In einigen Beispielen führt die sichere Enklave 206 die Prüfung des Chips 103 und/oder der Kreditkartendaten durch. Die Prüfung kann z. B. unter Verwendung einer beliebigen Anzahl und/oder eines oder mehrerer beliebiger Typen von Verfahren, die für vergangene, derzeitige und/oder zukünftige Chipkarten wie z. B. Chip und PIN, Herausforderungs-Antwort usw. anwendbar sind, durchgeführt werden.
  • 3 stellt eine weitere Beispielumgebung 300 dar, in der die Beispielchipkarte 102, die den Chip 103 besitzt, gemäß dieser Offenbarung sicher verarbeitet wird. Um der E-Commerce-Seite 110 zu ermöglichen, mit dem Chip 103 zu kommunizieren, implementiert der Beispiel-Internet-Browser 106 eine Beispiel-API 302. Die Beispiel-API 302 von 3 repräsentiert eine Schnittstellt zur E-Commerce-Seite 110, die ermöglicht, dass die E-Commerce-Seite 110 den Internet-Browser 106 des Anwenders hinsichtlich eines angebrachten Kartenlesers 114, der die Kommunikation mit dem Chip 103 auf der Chipkarte 102 unterstützt, abfragt. Die Beispiel-API 302 ermöglicht zusätzlich, dass die E-Commerce-Seite 110 die Ausführung einer beispielhaften sicheren Enklave 304 bei der Client-Einrichtung 108, die mit einer beispielhaften sicheren Enklave 306 beim beispielhaften Kreditkartenverarbeitungs-Server 118 über eine beispielhafte sichere Kommunikationsverbindung 308 interagiert, auslöst. Die sichere Enklave 304 bei der Client-Einrichtung 108 führt eine Schnittstelle aus, die ermöglicht, dass die sichere Enklave 306 beim Kreditkartenverarbeitungs-Server 118 sicher über die sichere Kommunikationsverbindung 308 mit dem Chip 103 interagiert.
  • Dann, wenn die E-Commerce-Seite 110 z. B. die Bezahlung für eine Transaktion benötigt, fragt die beispielhafte E-Commerce-Seite 110 von 3 die Beispiel-API 302 ab, um zu bestimmen, ob der Internet-Browser 106 und die Hardware des Anwenders chipbasierte Transaktionen durchführen können. Wenn ja und wenn die Karte 102 nicht bereits eingesetzt, in die Nähe gebracht usw. wurde, wird der Anwender aufgefordert, die Karte 102 in den Kartenleser 114 einzusetzen, die Karte 102 in die Nähe des Kartenlesers 114 zu bringen usw. Wenn sie eingesetzt oder in die Nähe gebracht wurde, initiiert die API 302 die sichere Enklave 304 bei der Client-Einrichtung 108. Die sichere Enklave 306 beim Kreditkartenverarbeitungs-Server 118 interagiert mit der sicheren Enklave 304 bei der Client-Einrichtung 108, um die Kreditkartendaten vom Chip 103 zu erhalten. Wenn der Kreditkartenverarbeitungs-Server 118 die Belastung der Karte 102 für die Transaktion genehmigt, informiert er die E-Commerce-Seite 110, dass die Zahlung vorgenommen worden ist. Wenn die Zahlung erfolgreich ist, schließt die E-Commerce-Seite 110 die Transaktion ab. In einigen Beispielen sind die sichere Enklaven 304 und 306 nicht implementiert und der Kreditkartenverarbeitungs-Server 118 kommuniziert mit dem Chip 103 z. B. über die API 302, eine unabhängige Netzverbindung des Kartenlesers 114 usw.
  • In einigen Beispielen prüft die sichere Enklave 304 den Chip 103 und/oder die Kreditkartendaten, bevor sie zur sicheren Enklave 306 gesendet werden. In einigen Beispielen führt die sichere Enklave 306 die Prüfung des Chips 103 und/oder der Kreditkartendaten durch. Eine Prüfung kann z. B. unter Verwendung einer beliebigen Anzahl und/oder eines oder mehrerer beliebiger Typen von Verfahren, die für vergangene, derzeitige und/oder zukünftige Chipkarten anwendbar sind, wie z. B. ein Chip und PIN, Herausforderung-Antwort usw. durchgeführt werden.
  • In den dargestellten Beispielen von 1-3 werden Chipkartendaten durch Entsprechende der API 116, der sicheren Enklave 204 und der sicheren Enklave 304 geleitet. Allerdings können Chipkartendaten in anderer Weise und/oder über weitere Pfade geleitet werden. Zum Beispiel könnte der Kartenleser 114 eine von einer Netzverbindung des Clients 108 unabhängige Netzverbindung, die durch die Client-API 116, 202, 302 organisiert und koordiniert wird, besitzen. In derartigen Beispielen kommuniziert der Kartenleser 114 über die unabhängige Netzverbindung des Kartenlesers direkt mit der E-Commerce-Seite 112 und/oder der Kreditkartenverarbeitungs-Seite 118, anstatt dass Chipkartendaten durch die Netzverbindung des Clients getunnelt werden.
  • 4 ist ein Blockdiagramm einer Beispielimplementierung der Beispiel-Client-Einrichtungen 108 von 1-3. Um die Beispiel-Client-Einrichtung 108 von 4 mit dem Beispielkartenleser 114 kommunikationstechnisch zu koppeln, enthält die Beispiel-Client-Einrichtung 108 von 4 eine beliebige Anzahl und/oder einen oder mehrere beliebige Typen von einer oder mehreren Beispieleinrichtungsschnittstellen 402. Beispieleinrichtungsschnittstellen 402 enthalten aber sind nicht eingeschränkt auf eine USB-Schnittstelle, eine NFC-Schnittstelle, eine BLUETOOTH-Schnittstelle usw.
  • Um die Beispiel-Client-Einrichtung 108 von 4 mit der E-Commerce-Seite 110 und/oder dem Kreditkartenverarbeitungs-Server 118 usw. kommunikationstechnisch zu koppeln, enthält die Beispiel-Client-Einrichtung 108 von 4 eine beliebige Anzahl und/oder einen oder mehrere beliebige Typen von einer oder mehreren Beispieleinrichtungsschnittstellen 404. Die eine oder die mehreren Beispieleinrichtungsschnittstellen 404 von 4 können z. B. ein beliebiger Typ einer drahtlosen Netzschnittstelle, einer drahtgebundenen Netzschnittstelle, einer Schnittstelle eines zellularen Netzes, einer Satellitennetzschnittstelle usw. sein. In einigen Beispielen ist der Kartenleser 114 über die eine oder die mehreren Netzschnittstellen 404 an die Client-Einrichtung 108 gekoppelt.
  • Um Software-Komponenten 406 der Beispiel-Client-Einrichtung 108 von 4 an den Kartenleser 114 anzubinden, enthält die Beispiel-Client-Einrichtung 108 von 4 einen Beispiel-Chipkarteneinrichtungstreiber 408. Der Beispiel-Chipkarteneinrichtungstreiber 408 von 4 ist gemäß einer Betriebssystem-Architektur (nicht gezeigt) und/oder einer Hardware-Architektur der Client-Einrichtung 108 von 4 implementiert.
  • Um den Chip 103 der Chipkarte 102 und/oder darauf gespeicherte Daten zu prüfen, enthält die Beispiel-Client-Einrichtung 108 von 4 eine Beispielprüfeinrichtung 410. Die Beispielprüfeinrichtung 410 von 4 implementiert eine beliebige Anzahl und/oder einen oder mehrere beliebige Typen von Prüffunktionen für den Chip 103 und/oder auf ihm gespeicherte Daten gemäß den Spezifikationen und/oder den Normen für den Chip 103 und oder die auf ihm gespeicherten Daten.
  • Um zu ermöglichen, dass ein Anwender mit Internetseiten 412 wie z. B. der Beispiel-E-Commerce-Seite 110 interagiert, führt die Beispiel Client-Einrichtung 108 von 4 den Beispiel-Internet-Browser 106 aus. Die Internet-Seiten 412 werden dem Internet-Browser 106 z. B. durch den E-Commerce-Server 112 bereitgestellt und werden bei der Client-Einrichtung 108 im Internet-Browser 106 präsentiert.
  • Um zu ermöglichen, dass z. B. die E-Commerce-Seite 110 und/oder der Kreditkartenverarbeitungs-Server 118 mit dem Chip 103 der Chipkarte 102 interagieren, führt der Beispiel-Internet-Browser 106 eine oder mehrere der Beispiel-APIs 116, 202 und 302, die oben in Verbindung mit den 1-3 diskutiert werden, aus.
  • In einigen Beispielen führt die Beispiel-Client-Einrichtung 108 von 4, um eine nochmals sicherere Verarbeitung von Kreditkartendaten, die auf Chipkartendaten gespeichert sind, zu ermöglichen, eine oder mehrere der beispielhaften sicheren Enklaven 204 und 304 aus, in denen z. B. alle oder ein Teil der APIs 116, 202 und 302 und die Prüfeinrichtung 410 ausgeführt werden können. In einigen Beispielen führt die Client-Einrichtung 108 die sichere Enklave 204, 304 nicht aus und/oder enthält sie nicht. In einigen Beispielen wird zur Laufzeit bestimmt, ob die sichere Enklave 204, 304 ausgeführt werden soll. In einigen Beispielen bestimmt der E-Commerce-Server 112 und/oder der Kreditkartenverarbeitungs-Server 118, ob die sichere Enklave 204, 304 bevorzugt wird (z. B. kann das Verarbeiten von Chipkartendaten ohne eine sichere Enklave 204, 304 fortschreiten, wenn sie nicht verfügbar ist) oder nötig ist, um fortzuschreiten.
  • Obwohl in 4 eine Weise des Implementierens der Client-Einrichtung 108 von 1-3 dargestellt ist, können ein oder mehrere der Elemente, Vorgänge und/oder Einrichtungen, die in 4 dargestellt sind, kombiniert, unterteilt, neu angeordnet, ausgelassen, entfernt und/oder auf andere Weise implementiert werden. Ferner können die eine oder die mehreren Beispielschnittstellen 402, die Beispielnetzschnittstelle 404, der Beispiel-Chipkarteneinrichtungstreiber 408, die Beispielprüfeinrichtung 410, der Beispiel-Internet-Browser 106, die eine oder die mehreren Beispiel-APIs 112, 202 und 302, die beispielhafte sichere Enklave 204, 304 und/oder im Allgemeinen die Beispiel-Client-Einrichtung 108 von 4 durch Hardware, Software, Firmware und/oder eine Kombination von Hardware, Software und/oder Firmware implementiert werden. Somit können z. B. die eine oder die mehreren Beispielschnittstellen 402, die Beispielnetzschnittstelle 404, der Beispiel-Chipkarteneinrichtungstreiber 408, die Beispielprüfeinrichtung 410, der Beispiel-Internet-Browser 106, die eine oder die mehreren Beispiel-APIs 112, 202 und 302, die beispielhafte sichere Enklave 204, 304 und/oder im Allgemeinen die Beispiel-Client-Einrichtung 108 durch eine oder mehrere analoge oder digitale Schaltungen, Logikschaltungen, programmierbare Prozessoren, programmierbare Steuereinheiten, Graphikverarbeitungseinheiten (GPUs), digitale Signalprozessoren (DSPs), anwendungsspezifische integriert Schaltungen (ASICs), programmierbare Logikeinrichtungen (PLDs), feldprogrammierbare Gate-Anordnungen (FPGAs) und/oder feldprogrammierbare Logikeinrichtungen (FPLDs) implementiert werden. Wenn ein Vorrichtungs- oder Systemanspruch dieses Patentes gelesen wird, um eine reine Software-Implementierung und/oder Firmware-Implementierung abzudecken, ist mindestens eine der Beispielschnittstellen 402, der Beispielnetzschnittstelle 404, des Beispiel-Chipkarteneinrichtungstreibers 408, der Beispielprüfeinrichtung 410, des Beispiel-Internet-Browsers 106, der Beispiel-APIs 112, 202 und 302, der beispielhaften sicheren Enklave 204, 304 und/oder der Beispiel-Client-Einrichtung 108 hiermit ausdrücklich derart definiert, dass sie eine nichttransitorische, computerlesbare Speichereinrichtung oder einen nichttransitorischen, computerlesbaren Speicherdatenträger wie z. B. einen Speicher, eine Digital-Versatile-Disk (DVD), eine Compact-Disk (CD), einen Blue-Ray-Datenträger usw., der die Software und/oder die Firmware enthält, enthalten. Weiterhin kann die Beispiel-Client-Einrichtung 108 von 4 ein oder mehrere Elemente, Vorgänge und/oder Einrichtungen zusätzlich zu oder statt den in 4 Dargestellten enthalten und/oder kann jeweils mehr als eines der dargestellten Elemente, Vorgänge und Einrichtungen enthalten.
  • Ein Ablaufplan, der beispielhafte maschinenlesbare Anweisungen zum Implementieren der Beispiel-Client-Einrichtungen 108 von 1-4 repräsentiert, ist in 5 gezeigt. In diesem Beispiel umfassen die maschinenlesbaren Anweisungen ein Programm zur Ausführung durch einen Prozessor wie z. B. den Prozessor 1010, der in der Beispiel-Prozessorplattform 1000, die unten in Verbindung mit 10 diskutiert wird, gezeigt ist. Das Programm kann in einer Software, die in einem nichttransitorischen, computerlesbaren Speichermedium wie z. B. einer CD, einer Diskette, einer Festplatte, einer DVD, einem Blue-Ray-Datenträger oder einem Speicher, der dem Prozessor 1010 zugeordnet ist, gespeichert ist, verkörpert sein, jedoch kann das gesamte Programm und/oder Teile davon alternativ durch eine Einrichtung außer dem Prozessor 1010 ausgeführt werden und/oder in einer Firmware oder einer fest zugeordneten Hardware verkörpert sein. Ferner können, obwohl das Beispielprogramm unter Bezugnahme auf den in 5 dargestellten Ablaufplan beschrieben ist, alternativ viele weitere Verfahren des Implementierens der Beispiel-Client-Einrichtungen 108 verwendet werden. Zum Beispiel kann die Ausführungsreihenfolge der Blöcke geändert werden und/oder einige der beschriebenen Blöcke können geändert, entfernt oder kombiniert werden. Zusätzlich und/oder alternativ können einige oder alle Blöcke durch eine oder mehrere Hardware-Schaltungen (z. B. eine diskrete und/oder integrierte analoge und/oder digitale Schaltungsanordnung, eine FPGA, eine ASIC, einen Komparator, einen Operationsverstärker (op-amp), eine Logikschaltung usw.), die strukturiert sind, den entsprechenden Vorgang ohne Ausführen einer Software oder einer Firmware durchzuführen, implementiert werden.
  • Das Beispiel von 5 beginnt bei Block 502. Bei Block 502 bestimmt die Beispiel-Client-Einrichtung 108, ob eine Anfrage hinsichtlich eines Kartenlesers 114, der an die Client-Einrichtung 108 gekoppelt oder ein Teil davon ist, empfangen wurde (Block 502). Zum Beispiel überwacht der Internet-Browser 106 eingehende Internetseitendaten hinsichtlich Anweisungen, die Chipkarten zugeordnet sind. In einigen Beispielen sind die internetbasierten API-Anweisungen, die Chipkarten zugeordnet sind, genormt und von der Chipkartenindustrie vereinbart. Wenn eine Anfrage empfangen wird (Block 502), bestimmt die API 116, 202, 302, ob sichere Enklaven 204, 206, 304, 306 durch die Client-Einrichtung 108 und den Server 112, 118 (Block 504) unterstützt werden. Zum Beispiel kann die Anfrage hinsichtlich des Kartenlesers 114 eine Anzeige, dass der Server 112, 118 eine sichere Enklave unterstützt, enthalten. Wenn sichere Enklaven 204, 206, 304, 306 unterstützt werden (Block 504), initiiert die API 202, 302 die sichere Enklave 204, 304 bei der Client-Einrichtung 108 (Block 506). Zum Beispiel verwendet die API 202, 302 INTEL SGX, um die sichere Enklave 204, 304 zu initiieren. Die sichere Enklave 204, 304 initiiert eine sichere Kommunikationsverbindung mit der sicheren Enklave 206, 306 beim Server 112, 118 (Block 508). Zum Beispiel initiiert die sichere Enklave 204, 304 die sichere Kommunikationsverbindung unter Verwendung von INTEL SGX. Die sichere Enklave 206, 306 beim Server 112, 118 interagiert über die sichere Kommunikationsverbindung mit der sicheren Enklave 204, 304 bei der Client-Einrichtung 108, um Kreditkartendaten vom Chip 103 der Chipkarte 102 (Block 510) zu erhalten. Die Steuerung kehrt zu Block 502 zurück, um auf eine weitere Anfrage hinsichtlich eines Chipkartenlesers zu warten.
  • Zurückkommend zu Block 504 prüft die BeispielPrüfeinrichtung 410 dann, wenn die API 116, 202, 302 bestimmt, dass sowohl durch die Client-Einrichtung 108 als auch durch den Server 112, 118 (Block 504) sichere Enklaven 204, 206, 304, 306 nicht unterstützt werden, den Chip 103 unter Verwendung z. B. einer Herausforderungs-Antwort-Transaktion (Block 512). In einigen Beispielen ist die Prüfung des Chips 103 ausgelassen, optional, unterlassen usw. Zum Beispiel implementiert die Prüfeinrichtung 410 eine beliebige Anzahl und/oder einen oder mehrere beliebige Typen von Prüffunktionen für den Chip 103 und/oder darauf gespeicherte Daten gemäß den Spezifikationen und/oder Normen für den Chip 103 und/oder die darauf gespeicherten Daten. Als Antwort auf eine oder mehrere Anweisungen, die vom E-Commerce-Server 112 empfangen werden, erhält die Beispiel-API 116, 202, 302 Kreditkartendaten vom Chip 103 der Chipkarte 102 und prüft in einigen Beispielen die erhaltenen Chipkartendaten (Block 514). Zum Beispiel implementiert die API 116, 202, 302 eine beliebige Anzahl und/oder einen oder mehrere beliebige Typen von Datenzugriffsfunktionen für den Chip 103 gemäß den Spezifikationen und/oder Normen für den Chip 103. Die Beispiel-API 116, 202, 302 stellt dem Server 112, 118 (Block 516) die Kreditkartendaten, die vom Chip 103 erhalten wurden, bereit. Die Steuerung wird zu Block 502 zurückgegeben, um auf eine weitere Anfrage hinsichtlich eines Chipkartenlesers zu warten.
  • 6 ist ein Blockdiagramm einer Beispielimplementierung des Beispiel-E-Commerce-Servers 112 von 1-3. Um den Beispiel-E-Commerce-Server 112 von 6 mit der Beispiel-Client-Einrichtung 108 und/oder dem Beispiel-Kreditkartenverarbeitungs-Server 118 usw. kommunikationstechnisch zu koppeln, enthält der Beispiel-E-Commerce-Server 112 von 6 eine beliebige Anzahl und/oder einen oder mehrere beliebige Typen von einer oder mehreren Beispielnetzschnittstellen (602). Die eine oder die mehreren Beispielnetzschnittstellen (602) von 6 können z. B. ein beliebiger Typ einer drahtlosen Netzschnittstelle, einer drahtgebundenen Netzschnittstelle, einer Schnittstelle eines zellularen Netzes, einer Satellitennetzschnittstelle usw. sein.
  • Um den Chip 103 der Chipkarte 102 und/oder darauf gespeicherte Daten zu prüfen enthält der Beispiel-E-Commerce-Server 112 von 6 eine Beispielprüfeinrichtung 604. Die Beispielprüfeinrichtung 604 von 6 implementiert eine beliebe Anzahl und/oder einen oder mehrere beliebige Typen von Prüffunktionen für den Chip 103 und/oder darauf gespeicherte Daten gemäß den Spezifikationen und/oder den Normen für den Chip 103 und/oder die darauf gespeicherten Daten.
  • Um Internetseiten 606 wie z. B. die Beispiel-E-Commerce-Seite 110 bereitzustellen (z. B. von einem Server zu liefern), enthält der Beispiel-E-Commerce-Server 112 von 6 einen Beispiel-Internet-Server 608. Die eine oder die mehreren Internetseiten 606 werden durch den Internet-Server 608 z. B. der Client-Einrichtung 108 bereitgestellt, wo sie im Internet-Browser 106 präsentiert werden.
  • In einigen Beispielen enthält der E-Commerce-Server 112 von 6, um eine nochmals sicherere Verarbeitung von Kreditkartendaten, die auf Chipkarten gespeichert sind, zu ermöglichen, eine sichere Enklave 206, in der z. B. alle oder ein Teil der Internetseiten 606 von einem Server geliefert werden können und/oder die Prüfeinrichtung 604 ausgeführt werden kann. In einigen Beispielen führt der E-Commerce-Server 112 die sichere Enklave 206 nicht aus und/oder enthält sie nicht. In einigen Beispielen wird zur Laufzeit bestimmt, ob die sichere Enklave 206 ausgeführt werden soll. In einigen Beispielen kann der E-Commerce-Server 112 verlangen, dass der Client 108 die sichere Enklave 204 ausführt.
  • Während eine beispielhafte Weise des Implementierens des E-Commerce-Servers 112 von 1-3 in 6 dargestellt ist, können ein oder mehrere der Elemente, der Vorgänge und/oder der Einrichtungen, die in 6 dargestellt sind, kombiniert, unterteilt, neu angeordnet, ausgelassen, entfernt und/oder auf andere Weise implementiert werden. Ferner können die Beispielschnittstelle 602, die Beispielprüfeinrichtung 604, der Beispiel-Internet-Server 608, die beispielhafte sichere Enklave 206 und/oder im Allgemeinen der Beispiel-E-Commerce-Server 112 von 6 durch Hardware, Software, Firmware und/oder eine Kombination von Hardware, Software und/oder Firmware implementiert werden. Somit können z. B. die Beispielschnittstelle 602, die Beispielprüfeinrichtung 604, der Beispiel-Internet-Servers 608, die beispielhafte sichere Enklave 206 und/oder im Allgemeinen der Beispiel-E-Commerce-Server 112 durch eine oder mehrere analoge oder digitale Schaltungen, Logikschaltungen, programmierbare Prozessoren, programmierbare Steuereinheiten, GPUs, DSPs, ASICs, PLDs, FPGAs und/oder FPLDs implementiert werden. Wenn ein Vorrichtungs- oder Systemanspruche dieses Patentes gelesen wird, um eine reine Software-Implementierung und/oder Firmware-Implementierung abzudecken, ist mindestens eine der Beispielschnittstelle 602, der Beispielprüfeinrichtung 604, des Beispiel-Internet-Servers 608, der beispielhaften sicheren Enklave 206 und/oder im Allgemeinen des Beispiel-E-Commerce-Servers 112 hiermit ausdrücklich derart definiert, dass sie eine nichttransitorische, computerlesbare Speichereinrichtung oder einen nichttransitorischen, computerlesbaren Speicherdatenträger wie z. B. einen Speicher, eine DVD, eine CD, einen Blue-Ray-Datenträger usw., der die Software und/oder die Firmware enthält, enthalten. Weiterhin kann der Beispiel-E-Commerce-Server 112 von 6 ein oder mehrere Elemente, Vorgänge und/oder Einrichtungen zusätzlich zu oder statt den in 6 dargestellten enthalten und/oder kann jeweils mehrere der dargestellten Elemente, Vorgänge und Einrichtungen enthalten.
  • Ein Ablaufplan, der beispielhafte maschinenlesbare Anweisungen zum Implementieren des Beispiel-E-Commerce-Servers 112 von 1-3 und 6 repräsentiert, ist in 7 gezeigt. In diesem Beispiel umfassen die maschinenlesbaren Anweisungen ein Programm zur Ausführung durch einen Prozessor wie z. B. den Prozessor 1010, der in der Beispiel-Prozessorplattform 1000, die unten in Verbindung mit 10 diskutiert wird, gezeigt ist. Das Programm kann in einer Software, die in einem nichttransitorischen, computerlesbaren Speichermedium wie z. B. einer CD, einer Diskette, einer Festplatte, einer DVD, einem Blue-Ray-Datenträger oder einem Speicher, der dem Prozessor 1010 zugeordnet ist, gespeichert ist, verkörpert sein, jedoch kann das gesamte Programm und/oder Teile davon alternativ durch eine Einrichtung außer dem Prozessor 1010 ausgeführt werden und/oder in einer Firmware oder einer fest zugeordneten Hardware verkörpert sein. Ferner können, obwohl das Beispielprogramm unter Bezugnahme auf den Ablaufplan, der in 7 dargestellt ist, beschrieben ist, alternativ viele weitere Verfahren des Implementierens des Beispiel-E-Commerce-Servers 112 verwendet werden. Zum Beispiel kann die Ausführungsreihenfolge der Blöcke geändert werden und/oder einige der beschriebenen Blöcke können geändert, entfernt oder kombiniert werden. Zusätzlich und/oder alternativ können einige oder alle Blöcke durch eine oder mehrere Hardware-Schaltungen (z. B. eine diskrete und/oder integrierte analoge und/oder digitale Schaltungsanordnung, eine FPGA, eine ASIC, einen Komparator, einen Operationsverstärker (op-amp), eine Logikschaltung usw.), die strukturiert sind, den entsprechenden Vorgang ohne Ausführen einer Software oder einer Firmware durchzuführen, implementiert werden.
  • Das Beispiel von 7 beginnt bei Block 702. Bei Block 702 detektiert die E-Commerce-Seite 110, dass eine Kreditkartentransaktion abgeschlossen werden muss. Zum Beispiel detektiert die E-Commerce-Seite 110, dass der Anwender 104 der E-Commerce-Seite 110 anzeigt, dass er für einen Artikel bezahlen möchte. Die E-Commerce-Seite 110 frägt die API 116, 202, 302 des Internet-Browsers 106 bei der Client-Einrichtung 108, die dem Anwender 104 zugeordnet ist, hinsichtlich eines kommunikationstechnisch gekoppelten Chipkartenlesers 114 (Block 704) ab. Zum Beispiel greift die E-Commerce-Seite 110 auf eine Funktion der API 116, 202, 302 des Internet-Browsers 106 zu. Wenn der Chipkartenleser 114 gefunden wird (Block 706), frägt die E-Commerce-Seite 110 die API 116, 202, 302 ab, um zu bestimmen, ob die Client-Einrichtung 108 die sichere Enklave 204, 304 (Block 708) unterstützt. Wenn die Client-Einrichtung 108 die sichere Enklave 204, 304 (Block 708) nicht unterstützt, prüft die Prüfeinrichtung 410 mittels der API 116, 202, 302 den Chip 103 der Chipkarte 102 unter Verwendung z. B. einer Herausforderungs-Antwort-Transaktion (Block 710). In einigen Beispielen kann die Prüfung des Chips 103 unterlassen, übersprungen, optional usw. sein. Zum Beispiel implementiert die Prüfeinrichtung 604 von 6 eine beliebige Anzahl und/oder einen oder mehrere beliebige Typen von Prüffunktionen für den Chip 103 und/oder darauf gespeicherte Daten gemäß den Spezifikationen und/oder den Normen für den Chip 103 und/oder die darauf gespeicherten Daten. Die E-Commerce-Seite 110 erhält über die API 116, 202, 302 Kreditkartendaten (z. B. Kartendaten) vom Chip 103 der Chipkarte 102 und prüft in einigen Beispielen die erhaltenen Chipkartendaten (Block 712). Die E-Commerce-Seite 110 führt die Transaktion unter Verwendung der erhaltenen Kreditkartendaten (Block 714) durch und sendet Transaktionsdetails zur Bezahlung (Block 716) zum Kreditkartenverarbeitungs-Server 118. Die Steuerung kehrt zu Block 702 zurück, um auf eine weitere abzuschließende Transaktion zu warten.
  • Zurückkommend zu Block 708 initiiert die E-Commerce-Seite 110 dann, wenn die Client-Einrichtung 108 die sichere Enklave 204, 304 (Block 708) unterstützt, die sichere Enklave 206 beim E-Commerce-Server 112 oder bei der sicheren Enklave 306 beim Kreditkartenverarbeitungs-Server 118 (Block 718). Wenn die sichere Enklave 206 initiiert wird, prüft die Prüfeinrichtung 604 mittels der API 116, 202, 302 den Chip 103 der Chipkarte 102 (Block 710) oder dann, wenn der Chip 103 nicht geprüft werden soll, fährt die Steuerung zu Block 712 fort. Die sichere Enklave 206 erhält Kreditkartendaten vom Chip 103 der Chipkarte 102 (Block 712) und die E-Commerce-Seite 112 schließt die Transaktion unter Verwendung der Kreditkartendaten, die durch die sichere Enklave 206 (Block 714) erhalten wurden, ab und sendet Transaktionsdetails zur Bezahlung (Block 716) zum Kreditkartenverarbeitungs-Server 118. Die Steuerung kehrt zu Block 702 zurück, um auf eine weitere abzuschließende Transaktion zu warten.
  • Alternativ schließt der Kreditkartenverarbeitungs-Server 118 dann, wenn die sichere Enklave 306 initiiert wird, die Transaktion unter Verwendung von Kreditkartendaten, die durch die sichere Enklave 306 (Block 714) vom Chip 103 erhalten wurden, ab und sendet Details der erfolgreichen Zahlung zur E-Commerce-Seite 110 (Block 716). Die Steuerung kehrt zu Block 702 zurück, um auf eine weitere abzuschließende Transaktion zu warten.
  • Zurückkommend zu Block 706 stellt die E-Commerce-Seite 110 dann, wenn ein kommunikationstechnisch gekoppelter Chipkartenleser 114 nicht gefunden wird (Block 706), eine manuelle internetbasierte Schnittstelle für den Internet-Browser 106 bereit, die der Anwender 104 verwenden kann, um Kreditkartendaten für die E-Commerce-Seite 110 (Block 720) bereitzustellen (z. B. manuell einzugeben). Die E-Commerce-Seite 110 erhält über die manuelle internetbasierte Schnittstelle Kreditkartendaten vom Anwender 104 (Block 712). Die E-Commerce-Seite 110 schließt die Transaktion unter Verwendung der Kreditkartendaten, die vom Anwender 104 (Block 714) manuell erhalten wurden, ab und sendet Transaktionsdetails zur Zahlung (Block 716) zum Kreditkartenverarbeitungs-Server 118. Die Steuerung kehrt zu Block 702 zurück, um auf eine weitere abzuschließende Transaktion zu warten.
  • 8 ist ein Blockdiagramm einer Beispielimplementierung des Beispiel-Kreditkartenverarbeitungs-Servers 118 von 1-3. Um den Beispiel-Kreditkartenverarbeitungs-Server 118 von 8 mit der Beispiel-Client-Einrichtung 108 und/oder dem Beispiel-E-Commerce-Server 112 usw. kommunikationstechnisch zu koppeln, enthält der Beispiel-Kreditkartenverarbeitungs-Server 118 von 8 eine beliebige Anzahl und/oder einen oder mehrere beliebige Typen von Beispielnetzschnittstellen 802. Die eine oder die mehreren Beispielnetzschnittstellen 802 von 8 können z. B. beliebige Typen einer drahtlosen Netzschnittstelle, einer drahtgebundenen Netzschnittstelle, einer Schnittstelle eines zellularen Netzes, einer Satellitennetzschnittstelle usw. sein.
  • Um den Chip 103 der Chipkarte 102 und/oder die darauf gespeicherten Daten zu prüfen, enthält der Beispiel-Kreditkartenverarbeitungs-Server 118 von 8 eine Beispielprüfeinrichtung 804. Die Beispielprüfeinrichtung 804 von 8 implementiert eine beliebige Anzahl und/oder einen oder mehrere beliebige Typen von Prüffunktionen für den Chip 103 und/oder auf ihm gespeicherte Daten gemäß den Spezifikationen und/oder Normen für den Chip 103 und/oder die auf ihm gespeicherten Daten.
  • In einigen Beispielen enthält der Beispiel-Kreditkartenverarbeitungs-Server 118 von 8, um eine nochmals sicherere Verarbeitung von Kreditkartendaten, die auf Chipkarten gespeichert sind, zu ermöglichen, die beispielhafte sichere Enklave 306, in der z. B. der gesamte oder ein Teil eines Beispieltransaktionsprozessors 806 und/oder die Prüfeinrichtung 604 ausgeführt werden können. In einigen Beispielen führt der Kreditkartenverarbeitungs-Server 118 die sichere Enklave 306 nicht aus und/oder enthält sie nicht. In einigen Beispielen wird zur Laufzeit bestimmt, ob die sichere Enklave 306 ausgeführt werden soll. In einigen Beispielen kann der Kreditkartenverarbeitungs-Server 118 verlangen, dass der Client 108 die sichere Enklave 304 ausführt.
  • Um Kreditkartentransaktionen zu verarbeiten enthält der Beispiel-Kreditkartenverarbeitungs-Server 118 von 8 einen Beispieltransaktionsprozessor 806.
  • Während in 8 eine beispielhafte Weise des Implementierens des Kreditkartenverarbeitungs-Servers 118 von 1-3 dargestellt ist, können ein oder mehrere der Elemente, der Vorgänge und/oder der Einrichtungen, die in 8 dargestellt sind, kombiniert, unterteilt, neu angeordnet, ausgelassen, entfernt und/oder auf andere Weise implementiert werden. Ferner können die Beispielnetzschnittstelle 802, die Beispielprüfeinrichtung 804, die beispielhafte sichere Enklave 306 und/oder im Allgemeinen der Beispiel-Kreditkartenverarbeitungs-Server 118 von 8 durch Hardware, Software, Firmware und/oder eine Kombination von Hardware, Software und/oder Firmware implementiert werden. Somit können z. B. die Beispielnetzschnittstelle 802, die Beispielprüfeinrichtung 804, die beispielhaften sicheren Enklave 306 und/oder im Allgemeinen der Beispiel-Kreditkartenverarbeitungs-Server 118 durch eine oder mehrere analoge oder digitale Schaltungen, Logikschaltungen, programmierbare Prozessoren, programmierbare Steuereinheiten, GPUs, DSPs, ASICs, PLDs, FPGAs und/oder FPLDs implementiert werden. Wenn ein Vorrichtungs- oder Systemanspruch dieses Patentes gelesen wird, um eine reine Software-Implementierung und/oder Firmware-Implementierung abzudecken, ist mindestens eine der Beispielnetzschnittstelle 802, der Beispielprüfeinrichtung 804, der beispielhaften sicheren Enklave 306 und/oder im Allgemeinen des Beispiel-Kreditkartenverarbeitungs-Servers 118 hiermit ausdrücklich derart definiert, dass sie eine nichttransitorische, computerlesbare Speichereinrichtung oder einen nichttransitorischen, computerlesbaren Speicherdatenträger wie z. B. einen Speicher, eine DVD, eine CD, einen Blue-Ray-Datenträger usw., der die Software und/oder Firmware enthält, enthalten. Weiterhin kann der Beispiel-E-Commerce-Server 112 von 8 ein oder mehrere Elemente, Vorgänge und/oder Einrichtungen zusätzlich zu oder statt den in 8 dargestellten enthalten und/oder kann jeweils mehrere der dargestellten Elemente, Vorgänge und Einrichtungen enthalten.
  • Ein Ablaufplan, der beispielhafte maschinenlesbare Anweisungen zum Implementieren des Beispiel-Kreditkartenverarbeitungs-Servers 118 von 1-3 und 8 repräsentiert, ist in 9 gezeigt. In diesem Beispiel umfassen die maschinenlesbaren Anweisungen ein Programm zur Ausführung durch einen Prozessor wie z. B. den Prozessor 1010, der in der Beispiel-Prozessorplattform 1000, die unten in Verbindung mit 10 diskutiert wird, gezeigt ist. Das Programm kann in einer Software, die in einem nichttransitorischen, computerlesbaren Speichermedium wie z. B. einer CD, einer Diskette, einer Festplatte, einer DVD, einem Blue-Ray-Datenträger oder einem Speicher, der dem Prozessor 1010 zugeordnet ist, gespeichert ist, verkörpert sein, jedoch kann das gesamte Programm und/oder Teile davon alternativ durch eine Einrichtung außer dem Prozessor 1010 ausgeführt werden und/oder in einer Firmware oder einer fest zugeordneten Hardware verkörpert sein. Ferner können, obwohl das Beispielprogramm unter Bezugnahme auf den Ablaufplan, der in 9 dargestellt ist, beschrieben ist, alternativ viele weitere Verfahren des Implementierens des Beispiel-Kreditkartenverarbeitungs-Servers 118 verwendet werden. Zum Beispiel kann die Ausführungsreihenfolge der Blöcke geändert werden und/oder einige der beschriebenen Blöcke können geändert, entfernt oder kombiniert werden. Zusätzlich und/oder alternativ können einige oder alle Blöcke durch eine oder mehrere Hardware-Schaltungen (z. B. eine diskrete und/oder integrierte analoge und/oder digitale Schaltungsanordnung, eine FPGA, eine ASIC, einen Komparator, einen Operationsverstärker (op-amp), eine Logikschaltung usw.), die strukturiert sind, den entsprechenden Vorgang ohne Ausführen einer Software oder einer Firmware durchzuführen, implementiert werden.
  • Das Beispiel von 9 beginnt bei Block 902. Bei Block 902 bestimmt der Kreditkartenverarbeitungs-Server 118, ob eine Anforderung, eine Transaktion mit der Chipkarte 102 direkt zu verarbeiten, empfangen wurde (Block 902). Zum Beispiel bestimmt der Kreditkartenverarbeitungs-Server 118, ob die E-Commerce-Seite 110 dem Kreditkartenverarbeitungs-Server 118 anzeigt, die Zahlung für eine Transaktion direkt zu verarbeiten. Wenn eine Anforderung, eine Transaktion direkt zu verarbeiten, empfangen wird (Block 902), initiiert der Kreditkartenverarbeitungs-Server 118 die beispielhafte sichere Enklave 306 und die sichere Kommunikationsverbindung (Block 904) unter Verwendung z. B. von INTEL SGX. Die Prüfeinrichtung 804 validiert mittels der API 116, 202, 302 den Chip 103 der Chipkarte 102 z. B. unter Verwendung einer Herausforderungs-Antwort-Transaktion (Block 906). In einigen Beispielen kann die Prüfung des Chips 103 unterlassen, übersprungen, optional usw. sein. Die sichere Enklave 306 erhält Kreditkartendaten vom Chip 103 der Chipkarte 102 und prüft in einigen Beispielen die erhaltenen Chipkartendaten (Block 908) und der Transaktionsprozessor 806 schließt die Transaktion unter Verwendung der Kreditkartendaten, die durch die sichere Enklave 306 erhalten wurden (Block 910), ab und sendet eine Benachrichtigung über die erfolgte Zahlung zur E-Commerce-Seite 110 (Block 912). Die Steuerung kehrt zu Block 902 zurück, um auf eine weitere Anforderung, eine Transaktion zu verarbeiten, zu warten.
  • Wie oben erwähnt können die Beispielvorgänge von 5, 7 und 9 unter Verwendung codierter Anweisungen (z. B. computer- und/oder maschinenlesbare Anweisungen), die in einem nichttransitorischen, computer- und/oder maschinenlesbaren Medium wie z. B. einer Festplatte, einem Flash-Speicher, einem Festwertspeicher, einer Compact-Disk, einer Digital-Versatile-Disk, einem Zwischenspeicher, einem Schreib/Lese-Speicher und/oder einer weiteren Speichereinrichtung oder einem Speicherdatenträger, worin Informationen für eine beliebige Dauer (z. B. für längere Zeiträume, dauerhaft, für kurze Fälle, zum vorübergehenden Puffern und/oder zum Zwischenspeichern der Informationen) gespeichert werden, implementiert werden. Wie hierin verwendet ist der Begriff nichttransitorisches, computerlesbares Medium ausdrücklich derart definiert, dass er einen beliebigen Typ einer computerlesbaren Speichereinrichtung und/oder eines computerlesbaren Speicherdatenträgers enthält und das Verbreiten von Signalen ausschließt und Übertragungsmedien ausschließt.
  • 10 ist ein Blockdiagramm einer Beispiel-Prozessorplattform 1000, die die Anweisungen von 5, 7 und 9 ausführen kann, um die Client-Einrichtung 108 von 1-4, den E-Commerce-Server 112 von 1-3 und 6 und den Kreditkartenverarbeitungs-Server 118 von 1-3 und 8 zu implementieren. Die Prozessorplattform 1000 kann z. B. ein Server, ein Personal Computer, eine Workstation, eine mobiles Endgerät (z. B. ein Mobiltelefon, ein Smartphone, ein Tablet wie z. B. eine IOS™-Einrichtung oder eine ANDROID™-Einrichtung), ein persönlicher digitaler Assistent (PDA), eine Internetvorrichtung, eine Spielkonsole, eine Set-Top-Box oder ein beliebiger weiterer Typ einer Rechenvorrichtung sein.
  • Die Prozessorplattform 1000 des dargestellten Beispiels enthält einen Prozessor 1010. Der Prozessor 1010 des dargestellten Beispiels ist eine Hardware. Zum Beispiel kann der Prozessor 1010 durch eine oder mehrere integrierte Schaltungen, Logikschaltungen, Mikroprozessoren, GPUs, DSPs oder Steuereinrichtungen von einer gewünschten Familie oder von einem gewünschten Herstellers implementiert sein. Der Hardware-Prozessor kann eine halbleiterbasierte (z. B. siliziumbasierte) Einrichtung sein. In diesem Beispiel implementiert der Prozessor die sicheren Enklaven 204, 206, 304 und 306, den Internet-Browser 106, die APIs 116, 202 und 302, die Prüfeinrichtungen 410, 604 und 804, den Chipkarteneinrichtungstreiber 408, den Internet-Server 608 und den Transaktionsprozessor 806.
  • Der Prozessor 1010 des dargestellten Beispiels enthält einen lokalen Speicher 1012 (z. B. einen Zwischenspeicher). Der Prozessor 1010 des dargestellten Beispiels ist über einen Bus 1018 in Kommunikation mit einem Hauptspeicher, der einen flüchtigen Speicher 1014 und einen nichtflüchtigen Speicher 1016 enthält. Der flüchtige Speicher 1014 kann durch synchronen dynamischen Schreib/Lese-Speicher (SDRAM), dynamischen Schreib/Lese-Speicher (DRAM), RAMBUS® dynamischen Schreib/Lese-Speicher (RDRAM®) und/oder einen beliebigen weiteren Typ einer Schreib/Lese-Speichereinrichtung implementiert werden. Der nichtflüchtige Speicher 1016 kann durch Flash-Speicher und/oder einen beliebigen weiteren Typ einer Speichereinrichtung implementiert werden. Der Zugriff auf den Hauptspeicher 1014, 1016 wird durch eine Speichersteuereinheit (nicht gezeigt) gesteuert.
  • Die Prozessorplattform 1000 des dargestellten Beispiels enthält auch eine Schnittstellenschaltung 1020. Die Schnittstellenschaltung 1020 kann durch einen beliebigen Typ einer Schnittstellennorm wie z. B. eine Ethernet-Schnittstelle, eine universelle serielle Bus-Schnittstelle (USB-Schnittstelle), eine Bluetooth®-Schnittstelle, eine Nahfeldkommunikationsschnittstelle (NFC-Schnittstelle) und/oder eine Peripheriekomponentenschnittstellen-Expressschnittstelle (PCI-Expressschnittstelle) implementiert werden. In diesem Beispiel implementiert die Schnittstellenschaltung 1020 die eine oder die mehreren Einrichtungsschnittstellen 402.
  • Im dargestellten Beispiel sind eine oder mehrere Eingabeeinrichtungen 1022 mit der Schnittstellenschaltung 1020 verbunden. Die eine oder die mehreren Eingabeeinrichtungen 1022 erlauben einem Anwender, Daten und/oder Anweisungen in den Prozessor 1010 einzugeben. Die eine oder die mehreren Eingabeeinrichtungen können z. B. durch einen Audiosensor, ein Mikrophon, eine Kamers (Standbild oder Bewegbild), eine Tastatur, einen Knopf, eine Maus, einen Berührungsbildschirm, ein Trak-Pad, einen Trackball, einen Isopoint und/oder ein Spracherkennungssystem implementiert werden.
  • Eine oder mehrere Ausgabeeinrichtungen 1024 sind außerdem mit der Schnittstellenschaltung 1020 des dargestellten Beispiels verbunden. Die Ausgabeeinrichtungen 1024 können z. B. durch Anzeigeeinrichtungen (z. B. eine Leuchtdiode (LED), eine organische Leuchtdiode (OLED), eine Flüssigkristallanzeigevorrichtung (LCD), eine Kathodenstrahlröhrenanzeigeeinrichtung (CRT), eine in einer Ebene schaltende Anzeigevorrichtung (IPS-Anzeigevorrichtung), einen Berührungsbildschirm usw.), eine taktile Ausgabeeinrichtung, einen Drucker und/oder Lautsprecher implementiert werden. Die Schnittstellenschaltung 1020 des dargestellten Beispiels enthält somit typischerweise eine Graphiktreiberkarte, einen Graphiktreiberchip und/oder einen Graphiktreiberprozessor.
  • Die Schnittstellenschaltung 1020 des dargestellten Beispiels enthält außerdem eine Kommunikationseinrichtung wie z. B. einen Sender, einen Empfänger, eine Sende-/Empfangseinrichtung, ein Modem, ein lokales Gateway und/oder eine Netzschnittstelle, um den Austausch von Daten mit externen Maschinen (z. B. Recheneinrichtungen jeglicher Art) über ein Netz 1026 (z. B. eine Ethernet-Verbindung, eine digitale Teilnehmerleitung (DSL), eine Telefonleitung, ein Koaxialkable, ein zellulares Telefonsystem, ein Wi-Fi-System usw.) zu ermöglichen. In einigen Beispielen eines Wi-Fi-Systems enthält die Schnittstellenschaltung 1020 eine Funkfrequenzmodul (RF-Modul), eine oder mehrere Antennen, Verstärker, Filter, Modulatoren usw. In diesem Beispiel implementiert die Schnittstellenschaltung 1020 die Beispielnetzschnittstellen 404, 602 und 802.
  • Die Prozessorplattform 1000 des dargestellten Beispiels enthält außerdem eine oder mehrere Massenspeichereinrichtungen 1028, um Software und/oder Daten zu speichern. Beispiele derartiger Massenspeichereinrichtungen 1028 enthalten Diskettenlaufwerke, Festplattenlaufwerke, CD-Laufwerke, Blue-Ray-Laufwerke, Systeme aus redundanten Anordnungen unabhängiger Datenträger (RAID-Systeme) und DVD-Laufwerke.
  • Codierte Anweisungen 1032, die die codierten Anweisungen von 5, 7 und 9 enthalten, können in der Massenspeichereinrichtung 1028, im flüchtigen Speicher 1014, im nichtflüchtigen Speicher 1016 und/oder einem austauschbaren, greifbaren computerlesbaren Speichermedium wie z. B. einer CD oder einer DVD gespeichert sein.
  • Aus dem Vorhergehenden wird begrüßt werden, dass Beispielverfahren, Beispielvorrichtungen und Beispielherstellungsgegenstände offenbart worden sind, die die Sicherheit von Kreditkartentransaktionen für Käufe durch Personen, die keine POS-Einrichtung verwenden, erhöhen. Aus dem Vorhergehenden wird begrüßt werden, dass Verfahren, Vorrichtungen und Herstellungsgegenstände offenbart worden sind, die den Betrieb eines Computers verbessern, dadurch, dass sie ermöglichen, dass der Computer (z. B. Personal Computer, mobile Endgeräte, Spielkonsolen usw.) E-Commerce-Internetseiten Fernzugriff auf Chipkartenleser, die an den Computer gekoppelt sind, über deren Internet-Browser bereitstellt. In einigen Beispielen kann der Betrieb von Computern durch die Verwendung sicherer Enklaven sicherer gemacht werden. Darüber hinaus identifizieren und überwinden hier offenbarte Beispielverfahren, Beispielvorrichtungen und/oder Beispielherstellungsgegenstände Beschränkungen im Stand der Technik, Transaktionen mit vorliegender Karte durchzuführen, wenn Personen keine POS-Einrichtung verwenden.
  • Beispielverfahren, Beispielvorrichtungen und Beispielherstellungsgegenstände, um Chipkartendaten sicher zu verarbeiten, werden hier offenbart. Weitere Beispiele und Kombinationen davon enthalten mindestens das Folgende.
  • Beispiel 1 ist ein Verfahren, das Folgendes enthält: Bereitstellen durch Ausführen einer Anweisung mit einem ersten Prozessor einer Client-Einrichtung einer Anwendungsprogrammierschnittstelle (API) in einem Internet-Client der Client-Einrichtung; als Antwort auf das Detektieren im Internet-Client bei der Client-Einrichtung einer Anfrage für Kartendaten von einem Server, Betreiben der API im Internet-Client bei der Client-Einrichtung durch Ausführen einer Anweisung mit dem ersten Prozessor der Client-Einrichtung, um die Kartendaten, die in einem Chip einer Chipkarte, die mit der Client-Einrichtung kommunikationstechnisch gekoppelt ist, gespeichert sind, zu erhalten; und Senden durch Ausführen einer Anweisung mit dem ersten Prozessor der Client-Einrichtung der Kartendaten zum Server.
  • Beispiel 2 ist das Verfahren von Beispiel 1, das ferner ein Bestimmen, ob die Chipkarte an die Client-Einrichtung kommunikationstechnisch gekoppelt ist, durch Ausführen einer Anweisung mit dem ersten Prozessor der Client-Einrichtung enthält.
  • Beispiel 3 ist das Verfahren von Beispiel 2, das ferner dann, wenn die Chipkarte an die Client-Einrichtung nicht kommunikationstechnisch gekoppelt ist, das Auffordern eines Anwenders im Internet-Client durch Ausführen einer Anweisung mit dem ersten Prozessor der Client-Einrichtung, die Kartendaten manuell bereitzustellen, enthält, wobei die Aufforderung durch den Server bereitgestellt wird.
  • Beispiel 4 ist das Verfahren von Beispiel 2, das ferner dann, wenn die Chipkarte an die Client-Einrichtung nicht kommunikationstechnisch gekoppelt ist, das Auffordern eines Anwenders im Internet-Client durch Ausführen einer Anweisung mit dem ersten Prozessor der Client-Einrichtung, die Chipkarte mit der Client-Einrichtung kommunikationstechnisch zu koppeln, enthält, wobei die Aufforderung durch die API im Internet-Client der Client-Einrichtung bereitgestellt wird.
  • Beispiel 5 ist das Verfahren von Beispiel 1, das ferner das Bereitstellen durch Ausführen einer Anweisung mit dem ersten Prozessor der Client-Einrichtung einer Einrichtungsschnittstelle für einen Kartenleser, der mit der Client-Einrichtung kommunikationstechnisch gekoppelt ist, und das Erhalten durch Ausführen einer Anweisung mit dem ersten Prozessor der Client-Einrichtung der Kartendaten von der Chipkarte durch Interagieren mit dem Kartenleser über die Einrichtungsschnittstelle enthält.
  • Beispiel 6 ist das Verfahren von Beispiel 1, wobei das Betreiben durch Ausführen einer Anweisung mit dem ersten Prozessor der Client-Einrichtung der API im Internet-Client bei der Client-Einrichtung, um die Kartendaten von einem Chip der Chipkarte zu erhalten, das Bereitstellen einer ersten sicheren Enklave durch Ausführen einer Anweisung durch einen zweiten Prozessor der Client-Einrichtung enthält, wobei die erste sichere Enklave ausgelegt ist, die Kartendaten von der Client-Einrichtung zu einer zweiten sicheren Enklave beim Server zu kommunizieren.
  • Beispiel 7 ist das Verfahren von Beispiel 6, wobei die Kartendaten den ersten Prozessor und/oder den Internet-Client umgehen, wenn die erste sichere Enklave die Kartendaten von der Client-Einrichtung zur zweiten sicheren Enklave beim Server kommuniziert.
  • Beispiel 8 ist das Verfahren von Beispiel 6, wobei die erste sichere Enklave und die zweite sichere Enklave die Kartendaten über eine sichere Kommunikationsverbindung von der Client-Einrichtung zum Server senden.
  • Beispiel 9 ist das Verfahren von Beispiel 8, wobei die API die sichere Kommunikationsverbindung durch eine weniger sichere Kommunikationsverbindung tunnelt.
  • Beispiel 10 ist das Verfahren von Beispiel 6, wobei der erste Prozessor der Client-Einrichtung den zweiten Prozessor der Client-Einrichtung enthält.
  • Beispiel 11 ist das Verfahren von Beispiel 1, wobei der Server eine E-Commerce-Seite enthält.
  • Beispiel 12 ist das Verfahren von Beispiel 1, wobei der Server einen Chipkartenverarbeitungs-Server enthält.
  • Beispiel 13 ist eine Client-Einrichtung, die Folgendes enthält:
    • einen Prozessor und ein nichttransitorisches, computerlesbares Speichermedium, in dem Anweisungen gespeichert sind, die dann, wenn sie ausgeführt werden, die Client-Einrichtung zu Folgendem veranlassen:
      • Bereitstellen einer Anwendungsprogrammierschnittstelle (API) in einem Internet-Client der Client-Einrichtung;
      • als Antwort auf das Detektieren im Internet-Client bei der Client-Einrichtung einer Anfrage für Kartendaten von einem Server, Betreiben der API im Internet-Client bei der Client-Einrichtung, um die Kartendaten von einem Chip einer Chipkarte, die mit der Client-Einrichtung kommunikationstechnisch gekoppelt ist, zu erhalten, wobei die Kartendaten auf dem Chip gespeichert sind; und Senden der Kartendaten zum Server.
  • Beispiel 14 ist die Client-Einrichtung von Beispiel 13, die ferner eine Netzschnittstelle, um die Anfrage zu empfangen und die Kartendaten zu senden, und eine Einrichtungsschnittstelle, um einen Chipkartenleser an die Client-Einrichtung kommunikationstechnisch zu koppeln, enthält, wobei der Chip der Chipkarte über den Chipkartenleser an die Client-Einrichtung kommunikationstechnisch gekoppelt ist.
  • Beispiel 15 ist die Client-Einrichtung von Beispiel 13, wobei die API dann, wenn die Chipkarte an die Client-Einrichtung nicht kommunikationstechnisch gekoppelt ist, eine Aufforderung im Internet-Client bereitstellt, die Kartendaten manuell bereitzustellen und/oder die Chipkarte an den Chipkartenleser zu koppeln.
  • Beispiel 16 ist die Client-Einrichtung von Beispiel 13, wobei die Anweisungen dann, wenn sie ausgeführt werden, bewirken, dass die Client-Einrichtung eine erste sichere Enklave bereitstellt, wobei die erste sichere Enklave ausgelegt ist, die Kartendaten von der Client-Einrichtung zu einer zweiten sicheren Enklave beim Server zu kommunizieren.
  • Beispiel 17 ist die Client-Einrichtung von Beispiel 13, die ferner einen zweiten Prozessor und ein zweites nichttransitorisches, computerlesbares Speichermedium, in dem Anweisungen gespeichert sind, die dann, wenn sie ausgeführt werden, bewirken, dass der zweite Prozessor eine erste sichere Enklave ausführt, enthält, wobei die erste sichere Enklave ausgelegt ist, die Kartendaten von der Client-Einrichtung zu einer zweiten sicheren Enklave beim Server zu kommunizieren.
  • Beispiel 18 ist ein nichttransitorisches, computerlesbares Speichermedium, in dem Anweisungen gespeichert sind, die dann, wenn sie ausgeführt werden, bewirken, dass eine Maschine mindestens Folgendes ausführt: Bereitstellen durch Ausführen einer Anweisung mit einem ersten Prozessor von einer Client-Einrichtung einer Anwendungsprogrammierschnittstelle (API) in einem Internet-Client der Client-Einrichtung; als Antwort auf das Detektieren im Internet-Client bei der Client-Einrichtung einer Anfrage für Kartendaten von einem Server, Betreiben der API im Internet-Client bei der Client-Einrichtung durch Ausführen einer Anweisung mit dem ersten Prozessor der Client-Einrichtung, um die Kartendaten, die in einem Chip einer Chipkarte, die mit der Client-Einrichtung kommunikationstechnisch gekoppelt ist, gespeichert sind, zu erhalten; und Senden durch Ausführen einer Anweisung mit dem ersten Prozessor der Client-Einrichtung der Kartendaten zum Server.
  • Beispiel 19 ist das nichttransitorische, computerlesbares Speichermedium von Beispiel 18, wobei die Anweisungen dann, wenn sie ausgeführt werden, bewirken, dass die Maschine dann, wenn die Chipkarte an die Client-Einrichtung nicht kommunikationstechnisch gekoppelt ist, eine Aufforderung im Internet-Client bereitstellt, die Kartendaten manuell bereitzustellen und/oder die Chipkarte an den Chipkartenleser zu koppeln.
  • Beispiel 20 ist das nichttransitorische, computerlesbares Speichermedium von Beispiel 18, wobei die Anweisungen dann, wenn sie ausgeführt werden, bewirken, dass die Maschine die API im Internet-Client bei der Client-Einrichtung betreibt, um die Kartendaten vom Chip der Chipkarte zu erhalten, enthält das Bereitstellen einer ersten sicheren Enklave, wobei die erste sichere Enklave ausgelegt ist, die Kartendaten von der Client-Einrichtung zu einer zweiten sicheren Enklave beim Server zu kommunizieren.
  • Beispiel 21 ist ein Verfahren, das Folgendes enthält: Bereitstellen durch Ausführen einer Anweisung mit einem ersten Prozessor von einer Client-Einrichtung einer Anwendungsprogrammierschnittstelle (API) in einem Internet-Client der Client-Einrichtung; als Antwort auf das Detektieren im Internet-Client bei der Client-Einrichtung einer Anfrage für Kartendaten von einem Server, Betreiben der API im Internet-Client bei der Client-Einrichtung durch Ausführen einer Anweisung mit dem ersten Prozessor der Client-Einrichtung, um die Kartendaten, die in einem Chip einer Chipkarte, die mit der Client-Einrichtung kommunikationstechnisch gekoppelt ist, gespeichert sind, zu erhalten; und Senden durch Ausführen einer Anweisung mit dem ersten Prozessor der Client-Einrichtung der Kartendaten zum Server.
  • Beispiel 22 ist das Verfahren von Beispiel [0094], das ferner das Bestimmen, ob die Chipkarte an die Client-Einrichtung kommunikationstechnisch gekoppelt ist, durch Ausführen einer Anweisung mit dem ersten Prozessor der Client-Einrichtung enthält.
  • Beispiel 23 ist das Verfahren von Beispiel [0095], das ferner dann, wenn die Chipkarte an die Client-Einrichtung nicht kommunikationstechnisch gekoppelt ist, das Auffordern eines Anwenders im Internet-Client durch Ausführen einer Anweisung mit dem ersten Prozessor der Client-Einrichtung, die Kartendaten manuell bereitzustellen und/oder die Chipkarte an die Clienteinrichtung kommunikationstechnisch zu koppeln, enthält, wobei die Aufforderung durch den Server bereitgestellt wird, wobei die Aufforderung durch die API im Internet-Client der Client-Einrichtung bereitgestellt wird.
  • Beispiel 24 ist das Verfahren von einem der Beispiele [0094] bis 23, das ferner das Bereitstellen durch Ausführen einer Anweisung mit dem ersten Prozessor der Client-Einrichtung einer Einrichtungsschnittstelle für einen Kartenleser, der mit der Client-Einrichtung kommunikationstechnisch gekoppelt ist, und das Erhalten durch Ausführen einer Anweisung mit dem ersten Prozessor der Client-Einrichtung der Kartendaten von der Chipkarte durch Interagieren mit dem Kartenleser über die Einrichtungsschnittstelle enthält.
  • Beispiel 25 ist das Verfahren von einem der Beispiele [0094] bis 24, wobei das Betreiben durch Ausführen einer Anweisung mit dem ersten Prozessor der Client-Einrichtung der API im Internet-Client bei der Client-Einrichtung, um die Kartendaten von einem Chip der Chipkarte zu erhalten, das Bereitstellen einer ersten sicheren Enklave durch Ausführen einer Anweisung durch einen zweiten Prozessor der Client-Einrichtung enthält, wobei die erste sichere Enklave ausgelegt ist, die Kartendaten von der Client-Einrichtung zu einer zweiten sicheren Enklave beim Server zu kommunizieren.
  • Beispiel 26 ist das Verfahren von Beispiel 25, wobei die Kartendaten den ersten Prozessor und/oder den Internet-Client umgehen, wenn die erste sichere Enklave die Kartendaten von der Client-Einrichtung zur zweiten sicheren Enklave beim Server kommuniziert.
  • Beispiel 27 ist das Verfahren von Beispiel [0098] oder Beispiel 26, wobei die erste sichere Enklave und die zweite sichere Enklave die Kartendaten über eine sichere Kommunikationsverbindung von der Client-Einrichtung zum Server senden.
  • Beispiel 28 ist das Verfahren von Beispiel 27, wobei die API die sichere Kommunikationsverbindung durch eine weniger sichere Kommunikationsverbindung tunnelt.
  • Beispiel 29 ist das Verfahren von einem der Beispiele [0098] bis 28, wobei der erste Prozessor der Client-Einrichtung den zweiten Prozessor der Client-Einrichtung enthält.
  • Beispiel 30 ist das Verfahren von einem der Beispiele [0094] bis 29, wobei der Server eine E-Commerce-Seite und/oder einen Chipkartenverarbeitungs-Server enthält.
  • Beispiel 31 ist eine Client-Einrichtung, die Folgendes enthält: einen Prozessor und ein nichttransitorisches, computerlesbares Speichermedium, in dem Anweisungen gespeichert sind, die dann, wenn sie ausgeführt werden, die Client-Einrichtung zu Folgendem veranlassen: Bereitstellen einer Anwendungsprogrammierschnittstelle (API) in einem Internet-Client der Client-Einrichtung; als Antwort auf das Detektieren im Internet-Client bei der Client-Einrichtung einer Anfrage für Kartendaten von einem Server, Betreiben der API im Internet-Client bei der Client-Einrichtung, um die Kartendaten von einem Chip einer Chipkarte, die mit der Client-Einrichtung kommunikationstechnisch gekoppelt ist, zu erhalten, wobei die Kartendaten auf dem Chip gespeichert sind; und Senden der Kartendaten zum Server.
  • Beispiel 32 ist die Client-Einrichtung von Beispiel 31, die ferner eine Netzschnittstelle, um die Anfrage zu empfangen und die Kartendaten zu senden, und eine Einrichtungsschnittstelle, um einen Chipkartenleser an die Client-Einrichtung kommunikationstechnisch zu koppeln, enthält, wobei der Chip der Chipkarte über den Chipkartenleser an die Client-Einrichtung kommunikationstechnisch gekoppelt ist.
  • Beispiel 33 ist die Client-Einrichtung von Beispiel 31 oder 32, wobei die API dann, wenn die Chipkarte an die Client-Einrichtung nicht kommunikationstechnisch gekoppelt ist, eine Aufforderung im Internet-Client bereitstellt, die Kartendaten manuell bereitzustellen und/oder die Chipkarte an den Chipkartenleser zu koppeln.
  • Beispiel 34 ist die Client-Einrichtung von einem der Beispiel 31 bis 33, wobei die Anweisungen dann, wenn sie ausgeführt werden, bewirken, dass die Client-Einrichtung eine erste sichere Enklave bereitstellt, wobei die erste sichere Enklave ausgelegt ist, die Kartendaten von der Client-Einrichtung zu einer zweiten sicheren Enklave beim Server zu kommunizieren.
  • Beispiel 35 ist die Client-Einrichtung von einem der Beispiel 31 bis 34, die ferner einen zweiten Prozessor und ein zweites nichttransitorisches, computerlesbares Speichermedium, in dem Anweisungen gespeichert sind, die dann, wenn sie ausgeführt werden, bewirken, dass der zweite Prozessor eine erste sichere Enklave ausführt, enthält, wobei die erste sichere Enklave ausgelegt ist, die Kartendaten von der Client-Einrichtung zu einer zweiten sicheren Enklave beim Server zu kommunizieren.
  • Beispiel 36 ist ein nichttransitorisches, computerlesbares Speichermedium, das Anweisungen enthält, die dann, wenn sie ausgeführt werden, bewirken, dass ein Computer-Prozessor das Verfahren von einem der Beispiele 21 bis 30 durchführt.
  • Beispiel 37 ist ein System, das Folgendes enthält: ein Mittel zum Bereitstellen einer Anwendungsprogrammierschnittstelle (API) in einem Internet-Client der Client-Einrichtung; ein Mittel zum Detektieren im Internet-Client bei der Client-Einrichtung einer Anfrage für Kartendaten von einem Server, Betreiben der API im Internet-Client bei der Client-Einrichtung durch Ausführen einer Anweisung mit dem ersten Prozessor der Client-Einrichtung, um die Kartendaten, die in einem Chip einer Chipkarte, die mit der Client-Einrichtung kommunikationstechnisch gekoppelt ist, gespeichert sind, zu erhalten; und ein Mittel zum Senden der Kartendaten zum Server.
  • Beispiel 38 ist das System von Beispiel 37, das ferner ein Mittel zum Bestimmen, ob die Chipkarte mit der Client-Einrichtung kommunikationstechnisch gekoppelt ist, enthält.
  • Beispiel 39 ist das System von Beispiel 38, das ferner ein Mittel enthält, um dann, wenn die Chipkarte an die Client-Einrichtung nicht kommunikationstechnisch gekoppelt ist, im Internet-Client einen Anwender auffordern, die Kartendaten manuell bereitzustellen und/oder die Chipkarte an die Client-Einrichtung kommunikationstechnisch zu koppeln, wobei die Aufforderung durch den Server bereitgestellt wird, wobei die Aufforderung durch die API im Internet-Client der Client-Einrichtung bereitgestellt wird.
  • Beispiel 40 ist das System von einem der Beispiele 37 bis 39, das ferner Folgendes enthält: ein Mittel zum Bereitstellen einer Einrichtungsschnittstelle für einen Kartenleser, der mit der Client-Einrichtung kommunikationstechnisch gekoppelt ist; und ein Mittel zum Erhalten der Kartendaten von der Chipkarte durch Interagieren mit dem Kartenleser über die Einrichtungsschnittstelle.
  • Beispiel 41 ist das System von einem der Beispiele 37 bis 40, wobei das Mittel zum Betreiben der API im Internet-Client bei der Client-Einrichtung, um die Kartendaten von einem Chip der Chipkarte zu erhalten, das Bereitstellen einer ersten sicheren Enklave enthält, wobei die erste sichere Enklave ausgelegt ist, die Kartendaten von der Client-Einrichtung zu einer zweiten sicheren Enklave beim Server zu kommunizieren.
  • Beispiel 42 ist das System von Beispiel 41, wobei die Kartendaten den ersten Prozessor und/oder den Internet-Client umgehen, wenn die erste sichere Enklave die Kartendaten von der Client-Einrichtung zur zweiten sicheren Enklave beim Server kommuniziert.
  • Beispiel 43 ist das System von einem der Beispiele 41 bis 42, wobei die erste sichere Enklave und die zweite sichere Enklave die Kartendaten über eine sichere Kommunikationsverbindung von der Client-Einrichtung zum Server senden.
  • Beispiel 44 ist das System von Beispiel 43, wobei die API die sichere Kommunikationsverbindung durch eine weniger sichere Kommunikationsverbindung tunnelt.
  • Beispiel 45 ist das System von einem der Beispiele 37 bis 44, wobei der Server eine E-Commerce-Seite und/oder einen Chipkartenverarbeitungs-Server enthält.
  • „Enthalten“ und „Umfassen“ (und alle Formen und Zeitformen davon) werden hier als unbegrenzte Begriffe verwendet. Deshalb versteht es sich, dass immer dann, wenn ein Anspruch etwas auf eine beliebige Form von „Enthalten“ oder „Umfassen“ (z. B. umfasst, enthält, Umfassen, Enthalten, Aufweisen usw.) folgend auflistet, zusätzliche Elemente, Begriffe usw. vorliegen können, ohne aus dem Umfang des entsprechenden Anspruchs herauszufallen. Wie hierin verwendet ist die Phrase „mindestens“, wenn sie als der Übergangsbegriff in einer Präambel von einem Anspruch verwendet wird, in derselben Weise unbegrenzt, wie die Begriffe „Umfassen“ und „Enthalten“ unbegrenzt sind. Konjunktionen wie z. B. „und“, „oder“ und „und/oder“ sind integrativ, sofern der Kontext es nicht eindeutig anders verlangt. Zum Beispiel enthält „A und/oder B“ A allein, B allein und A mit B. In dieser Spezifikation und den beigefügten Ansprüchen schließen die Einzahlformen „ein“ und „der/die/das“ die Mehrzahlbezüge nicht aus, sofern der Kontext es nicht eindeutig anders verlangt.
  • Alle Referenzen, einschließlich Publikationen, Patentanmeldungen und Patente, die hier zitiert werden, sind hiermit durch Bezugnahme mit demselben Umfang mit aufgenommen, als wenn jede Referenz einzeln und speziell als durch Bezugnahme mit aufgenommen gekennzeichnet wäre und in ihrer Gesamtheit hierin angegeben wäre.
  • Obwohl hier bestimmte Beispielverfahren, Beispielvorrichtungen und Beispielherstellungsgegenstände offenbart worden sind, ist der Deckungsumfang dieses Patentes nicht darauf beschränkt. Im Gegenteil deckt dieses Patent alle Verfahren, Vorrichtungen und Herstellungsgegenstände, die billig in den Umfang der Ansprüche dieses Patentes fallen, ab.

Claims (28)

  1. Verfahren, das Folgendes umfasst: Bereitstellen durch Ausführen einer Anweisung mit einem ersten Prozessor einer Client-Einrichtung einer Anwendungsprogrammierschnittstelle (API) in einem Internet-Client der Client-Einrichtung; als Antwort auf das Detektieren einer Anfrage für Kartendaten von einem Server im Internet-Client bei der Client-Einrichtung, Betreiben durch Ausführen einer Anweisung mit dem ersten Prozessor der Client-Einrichtung der API im Internet-Client bei der Client-Einrichtung, um die Kartendaten, die in einem Chip von einer Chipkarte, die an die Client-Einrichtung kommunikationstechnisch gekoppelt ist, gespeichert sind, zu erhalten; und Senden der Kartendaten zum Server durch Ausführen einer Anweisung mit dem ersten Prozessor der Client-Einrichtung.
  2. Verfahren nach Anspruch 1, das ferner das Bestimmen, ob die Chipkarte mit der Client-Einrichtung kommunikationstechnisch gekoppelt ist, durch Ausführen einer Anweisung mit dem ersten Prozessor der Client-Einrichtung enthält.
  3. Verfahren nach Anspruch 2, das ferner dann, wenn die Chipkarte mit der Client-Einrichtung nicht kommunikationstechnisch gekoppelt ist, das Auffordern eines Anwenders im Internet-Client durch Ausführen einer Anweisung mit dem ersten Prozessor der Client-Einrichtung, die Kartendaten manuell bereitzustellen und/oder die Chipkarte an die Client-Einrichtung kommunikationstechnisch zu koppeln, enthält, wobei die Aufforderung durch den Server bereitgestellt wird, wobei die Aufforderung durch die API im Internet-Client der Client-Einrichtung bereitgestellt wird.
  4. Verfahren nach einem der Ansprüche 1 bis 3, das ferner Folgendes umfasst: Bereitstellen einer Einrichtungsschnittstelle für einen Kartenleser, der an die Client-Einrichtung kommunikationstechnisch gekoppelt ist, durch Ausführen einer Anweisung mit dem ersten Prozessor der Client-Einrichtung; und Erhalten der Kartendaten von der Chipkarte durch Interagieren mit dem Kartenleser über die Einrichtungsschnittstelle durch Ausführen einer Anweisung mit dem ersten Prozessor der Clienteinrichtung.
  5. Verfahren nach einem der Ansprüche 1 bis 4, wobei das Betreiben der API im Internet-Client bei der Client-Einrichtung durch Ausführen einer Anweisung mit dem ersten Prozessor der Client-Einrichtung, um die Kartendaten von einem Chip der Chipkarte zu erhalten, das Bereitstellen einer ersten sicheren Enklave durch Ausführen einer Anweisung durch einen zweiten Prozessor der Client-Einrichtung enthält, wobei die erste sichere Enklave ausgelegt ist, die Kartendaten von der Client-Einrichtung zu einer zweiten sicheren Enklave beim Server zu kommunizieren.
  6. Verfahren nach Anspruch 5, wobei die Kartendaten den ersten Prozessor und/oder den Internet-Client umgehen, wenn die erste sichere Enklave die Kartendaten von der Client-Einrichtung zur zweiten sicheren Enklave beim Server kommuniziert.
  7. Verfahren nach Anspruch 5 oder 6, wobei die erste sichere Enklave und die zweite sichere Enklave die Kartendaten über eine sichere Kommunikationsverbindung von der Client-Einrichtung zum Server senden.
  8. Verfahren nach Anspruch 7, wobei die API die sichere Kommunikationsverbindung durch eine weniger sichere Kommunikationsverbindung tunnelt.
  9. Verfahren nach einem der Ansprüche 5 bis 8, wobei der erste Prozessor der Client-Einrichtung den zweiten Prozessor der Client-Einrichtung enthält.
  10. Verfahren nach einem der Ansprüche 1 bis 9, wobei der Server eine E-Commerce-Seite und/oder einen Chipkartenverarbeitungs-Server enthält.
  11. Client-Einrichtung, die Folgendes umfasst: einen Prozessor und ein nichttransitorisches, computerlesbares Speichermedium, auf dem Anweisungen gespeichert sind, die dann, wenn sie ausgeführt werden, den Client zu Folgendem veranlassen: Bereitstellen einer Anwendungsprogrammierschnittstelle (API) in einem Internet-Client der Client-Einrichtung; als Antwort auf das Detektieren einer Anfrage für Kartendaten von einem Server im Internet-Client bei der Client-Einrichtung, Betreiben der API im Internet-Client bei der Client-Einrichtung, um die Kartendaten von einem Chip von einer Chipkarte, die an die Client-Einrichtung kommunikationstechnisch gekoppelt ist, zu erhalten, wobei die Kartendaten im Chip gespeichert sind; und Senden der Kartendaten zum Server.
  12. Client-Einrichtung nach Anspruch 11, die ferner Folgendes umfasst: eine Netzschnittstelle, um die Anfrage zu empfangen und die Kartendaten zu senden; und eine Einrichtungsschnittstelle, um einen Chipkartenleser an die Client-Einrichtung kommunikationstechnisch zu koppeln, wobei der Chip der Chipkarte über den Chipkartenleser mit der Client-Einrichtung kommunikationstechnisch gekoppelt ist.
  13. Client-Einrichtung nach Anspruch 11 oder Anspruch 12, wobei die API dann, wenn die Chipkarte nicht an die Client-Einrichtung kommunikationstechnisch gekoppelt ist, im Internet-Client eine Aufforderung zum manuellen Bereitstellen der Kartendaten und/oder Koppeln der Chipkarte an den Chipkartenleser bereitstellt.
  14. Client-Einrichtung nach einem der Ansprüche 11 bis 13, wobei die Anweisungen dann, wenn sie ausgeführt werden, bewirken, dass die Client-Einrichtung eine erste sichere Enklave bereitstellt, wobei die erste sichere Enklave ausgelegt ist, die Kartendaten von der Client-Einrichtung zu einer zweiten sicheren Enklave beim Server zu kommunizieren.
  15. Client-Einrichtung nach einem der Ansprüche 11 bis 14, die ferner Folgendes umfasst: einen zweiten Prozessor und ein zweites nichttransitorisches, computerlesbares Speichermedium, in dem Anweisungen gespeichert sind, die dann, wenn sie ausgeführt werden, bewirken, dass der zweite Prozessor eine erste sichere Enklave ausführt, wobei die erste sichere Enklave ausgelegt ist, die Kartendaten von der Client-Einrichtung zu einer zweiten sicheren Enklave beim Server zu kommunizieren.
  16. Nichttransitorisches, computerlesbares Speichermedium, das Anweisungen enthält, die dann, wenn sie ausgeführt werden, bewirken, dass eine Maschine mindestens Folgendes durchführt: Bereitstellen einer Anwendungsprogrammierschnittstelle (API) in einem Internet-Client einer Client-Einrichtung durch Ausführen einer Anweisung mit einem ersten Prozessor der Client-Einrichtung; als Antwort auf das Detektieren einer Anfrage für Kartendaten von einem Server im Internet-Client bei der Client-Einrichtung, Betreiben der API im Internet-Client bei der Client-Einrichtung, um die Kartendaten, die in einem Chip von einer Chipkarte, die an die Client-Einrichtung kommunikationstechnisch gekoppelt ist, gespeichert sind, zu erhalten, durch Ausführen einer Anweisung mit dem ersten Prozessor der Client-Einrichtung; und Senden der Kartendaten zum Server durch Ausführen einer Anweisung mit dem ersten Prozessor der Client-Einrichtung.
  17. Nichttransitorisches, computerlesbares Speichermedium nach Anspruch 16, wobei die Anweisungen dann, wenn sie ausgeführt werden, bewirken, dass die Maschine dann, wenn die Chipkarte mit der Client-Einrichtung nicht kommunikationstechnisch gekoppelt ist, eine Aufforderung im Internet-Client für das manuelle Bereitstellen der Kartendaten und/oder das Koppeln der Chipkarte an den Chipkartenleser bereitstellt.
  18. Nichttransitorisches, computerlesbares Speichermedium nach Anspruch 16, wobei die Anweisungen dann, wenn sie ausgeführt werden, bewirken, dass die Maschine die API im Internet-Client bei der Client-Einrichtung betreibt, um die Kartendaten vom Chip der Chipkarte zu erhalten, enthält das Bereitstellen einer ersten sicheren Enklave, wobei die erste sichere Enklave ausgelegt ist, die Kartendaten von der Client-Einrichtung zu einer zweiten sicheren Enklave beim Server zu kommunizieren.
  19. Nichttransitorisches, computerlesbares Speichermedium, das Anweisungen enthält, die dann, wenn sie ausgeführt werden, bewirken, dass ein Computerprozessor das Verfahren nach einem der Ansprüche 1 bis 10 durchführt.
  20. System, das Folgendes umfasst: ein Mittel zum Bereitstellen einer Anwendungsprogrammierschnittstelle (API) in einem Internet-Client der Client-Einrichtung; ein Mittel zum Detektieren einer Anfrage für Kartendaten von einem Server im Internet-Client bei der Client-Einrichtung und Betreiben der API im Internet-Client bei der Client-Einrichtung, um die Kartendaten, die in einem Chip von einer Chipkarte, die an die Client-Einrichtung kommunikationstechnisch gekoppelt ist, gespeichert sind, zu erhalten; und ein Mittel zum Senden der Kartendaten zum Server.
  21. System nach Anspruch 20, das ferner ein Mittel enthält, um zu bestimmen, ob die Chipkarte an die Client-Einrichtung kommunikationstechnisch gekoppelt ist.
  22. System nach Anspruch 21, das ferner ein Mittel enthält, um dann, wenn die Chipkarte an die Client-Einrichtung nicht kommunikationstechnisch gekoppelt ist, einen Anwender im Internet-Client aufzufordern, die Kartendaten manuell bereitzustellen und/oder die Chipkarte an die Client-Einrichtung kommunikationstechnisch zu koppeln, wobei die Aufforderung durch den Server bereitgestellt wird, wobei die Aufforderung durch die API im Internet-Client der Client-Einrichtung bereitgestellt wird.
  23. System nach einem der Ansprüche 20 bis 22, das ferner Folgendes enthält: ein Mittel zum Bereitstellen einer Einrichtungsschnittstelle für einen Kartenleser, der an die Client-Einrichtung kommunikationstechnisch gekoppelt ist; und ein Mittel zum Erhalten der Kartendaten von der Chipkarte durch Interagieren mit dem Kartenleser über die Einrichtungsschnittstelle.
  24. System nach einem der Ansprüche 20 bis 23, wobei das Mittel zum Betreiben der API im Internet-Client bei der Client-Einrichtung, um die Kartendaten von einem Chip der Chipkarte zu erhalten, das Bereitstellen einer ersten sicheren Enklave enthält, wobei die erste sichere Enklave ausgelegt ist, die Kartendaten von der Client-Einrichtung zu einer zweiten sicheren Enklave beim Server zu kommunizieren.
  25. System nach Anspruch 24, wobei die Kartendaten den ersten Prozessor und/oder den Internet-Client umgehen, wenn die erste sichere Enklave die Kartendaten von der Client-Einrichtung zur zweiten sicheren Enklave beim Server kommuniziert.
  26. System nach Anspruch 24 oder 25, wobei die erste sichere Enklave und die zweite sichere Enklave die Kartendaten über eine sichere Kommunikationsverbindung von der Client-Einrichtung zum Server senden.
  27. System nach Anspruch 26, wobei die API die sichere Kommunikationsverbindung durch eine weniger sichere Kommunikationsverbindung tunnelt.
  28. System nach einem der Ansprüche 20 bis 27, wobei der Server eine E-Commerce-Seite und/oder einen Chipkartenverarbeitungs-Server enthält.
DE102018125358.3A 2017-11-14 2018-10-12 Verfahren und Vorrichtungen zum sicheren Verarbeiten von Chipkarten Pending DE102018125358A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US15/812,614 US11164188B2 (en) 2017-11-14 2017-11-14 Methods and apparatus to securely handle chip cards
US15/812,614 2017-11-14

Publications (1)

Publication Number Publication Date
DE102018125358A1 true DE102018125358A1 (de) 2019-05-16

Family

ID=65038018

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102018125358.3A Pending DE102018125358A1 (de) 2017-11-14 2018-10-12 Verfahren und Vorrichtungen zum sicheren Verarbeiten von Chipkarten

Country Status (3)

Country Link
US (2) US11164188B2 (de)
CN (1) CN109784913A (de)
DE (1) DE102018125358A1 (de)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11164188B2 (en) 2017-11-14 2021-11-02 Intel Corporation Methods and apparatus to securely handle chip cards
CN115086214B (zh) * 2022-06-13 2024-01-19 新华三半导体技术有限公司 一种套片检测系统、方法、电子设备及存储介质

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7292999B2 (en) * 2001-03-15 2007-11-06 American Express Travel Related Services Company, Inc. Online card present transaction
US7748609B2 (en) * 2007-08-31 2010-07-06 Gemalto Inc. System and method for browser based access to smart cards
NL2006609C2 (nl) * 2011-04-14 2012-10-16 Sepasoft B V Samenstel en werkwijze voor het afhandelen van transacties.
US20130211938A1 (en) * 2012-02-14 2013-08-15 Microsoft Corporation Retail kiosks with multi-modal interactive surface
US9584517B1 (en) * 2014-09-03 2017-02-28 Amazon Technologies, Inc. Transforms within secure execution environments
US11080674B1 (en) * 2014-09-19 2021-08-03 Square, Inc. Point of sale system
GB201423362D0 (en) * 2014-12-30 2015-02-11 Mastercard International Inc Trusted execution enviroment (TEE) based payment application
WO2016122457A1 (en) * 2015-01-27 2016-08-04 Hewlett Packard Enterprise Development Lp Virtual point of sale
US10410211B2 (en) * 2015-06-15 2019-09-10 Intel Corporation Virtual POS terminal method and apparatus
EP3443515A4 (de) * 2016-04-15 2019-04-03 Visa International Service Association System und verfahren für sichere webzahlungen
US10528721B2 (en) * 2016-10-20 2020-01-07 Intel Corporation Trusted packet processing for multi-domain separatization and security
US10505917B2 (en) * 2017-06-05 2019-12-10 Amazon Technologies, Inc. Secure device-to-device process for granting access to a physical space
US11164188B2 (en) 2017-11-14 2021-11-02 Intel Corporation Methods and apparatus to securely handle chip cards

Also Published As

Publication number Publication date
US20190034928A1 (en) 2019-01-31
CN109784913A (zh) 2019-05-21
US20220058650A1 (en) 2022-02-24
US11164188B2 (en) 2021-11-02
US12014377B2 (en) 2024-06-18

Similar Documents

Publication Publication Date Title
US11443316B2 (en) Providing identification information to mobile commerce applications
US11361300B1 (en) Mobile wallet bundled features
DE102016100110B4 (de) Verwaltung einer Ressourcenkontoanwendung
DE102012112967B4 (de) online Transaktionssystem
US20190370787A1 (en) System and methods for sharing a primary account number among cardholders
US20210374706A1 (en) Smart card nfc secure money transfer
US20150066651A1 (en) Method and System for Secure Mobile Payment Processing and Data Analytics
EP2530661A1 (de) Elektronisches System zur raschen und sicheren Abwicklung von Transaktionen mit mobilen Geräten
WO2020021550A1 (en) System and method for performing cashless transactions between computing devices
AU2016248346A1 (en) Binding process using electronic telecommunications device
DE102018125358A1 (de) Verfahren und Vorrichtungen zum sicheren Verarbeiten von Chipkarten
DE112012005291T5 (de) Sichere finanzielle Transaktionen unter Verwendung mehrerer Kommunikationstechnologien
US20220156719A1 (en) Programmable card for token payment and systems and methods for using programmable card
US20220076240A1 (en) System and method for ephemeral compute with payment card processing
KR20160076583A (ko) 유,무선 웹서비스를 이용한 즉시 대출서비스 방법
DE102013016119B4 (de) Verfahren zur Bezahlung
EP3561753A1 (de) Datenübertragungs- und verarbeitungsverfahren und anordnung hierfür
DE102013022436B3 (de) Elektronisches Transaktionsverfahren und Computersystem
DE112020002601T5 (de) System und verfahren zum betreiben einer verbrauchervorrichtung als zahlungsvorrichtung
JP5476503B1 (ja) 情報入力システム、情報入力方法、及び情報入力プログラム
DE102021115888A1 (de) Verfahren und System zum Sammeln von Bonuspunkten
DE102013022438B3 (de) Elektronisches Transaktionsverfahren und Computersystem
DE102013022445B3 (de) Elektronisches Transaktionsverfahren und Computersystem
KR20200129748A (ko) 발급된 카드를 이용하는 결제 시스템 및 결제 방법
AU2017204901A1 (en) Computer-implemented system and method for processing healthcare transactions