DE112008003528T5 - Abgesicherte Eingaben für eine Management-Engine - Google Patents

Abgesicherte Eingaben für eine Management-Engine Download PDF

Info

Publication number
DE112008003528T5
DE112008003528T5 DE112008003528T DE112008003528T DE112008003528T5 DE 112008003528 T5 DE112008003528 T5 DE 112008003528T5 DE 112008003528 T DE112008003528 T DE 112008003528T DE 112008003528 T DE112008003528 T DE 112008003528T DE 112008003528 T5 DE112008003528 T5 DE 112008003528T5
Authority
DE
Germany
Prior art keywords
input
controller
input device
input information
host 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.)
Ceased
Application number
DE112008003528T
Other languages
English (en)
Inventor
Moshe Maor
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 DE112008003528T5 publication Critical patent/DE112008003528T5/de
Ceased legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/82Protecting input, output or interconnection devices
    • G06F21/83Protecting input, output or interconnection devices input devices, e.g. keyboards, mice or controllers thereof

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • User Interface Of Digital Computer (AREA)
  • Storage Device Security (AREA)

Abstract

Vorrichtung, die Folgendes umfasst:
einen Controller zum Steuern eines Eingabegeräts, zum Empfangen von Eingabeinformationen von dem Eingabegerät, zum Ausschließen eines Host-Prozessors von der Steuerung des Eingabegerätes und zum Absichern der von dem Eingabegerät empfangenen Eingabeinformationen dergestalt, dass die Eingabeinformationen nicht durch den Host-Prozessor oder durch irgend eine auf dem Host-Prozessor laufende Software empfangen werden.

Description

  • VERWANDTE ANMELDUNGEN
  • Diese Anmeldung ist mit den folgenden Anmeldungen verwandt, die am selben Tag wie diese Anmeldung eingereicht wurden:
    „Personal Guard” an Moshe Maor, Anwaltsregisternummer P25461;
    „Personal Vault” an Moshe Maor, Anwaltsregisternummer P26881;
    „Secure Input” an Douglas Gabel und Moshe Maor, Anwaltsregisternummer P26882;
    „Secure Client/Server Transactions” an Moshe Maor, Anwaltsregisternummer P26890.
  • TECHNISCHES GEBIET
  • Die Erfindungen betreffen allgemein abgesicherte Eingaben für eine Management-Engine.
  • ALLGEMEINER STAND DER TECHNIK
  • Es gibt derzeit eine große Anzahl verschiedener Arten von Keyloggern, die es Hackern ermöglichen, sich in verschiedene Ebenen des Software-Stacks auf dem Computer eines Nutzers einzuklinken. Der Einklinkpunkt kann auf einer so niedrigen Ebene (das heißt, so Hardware-nah) wie ein Tastatur-Basistreiber oder auf einer so hohen Ebene (das heißt, so Hardware-fern) wie ein Script liegen, das innerhalb des Funktionsbereichs eines Internet-Browsers arbeitet. Auf diese Weise können Software-basierte Keylogger und andere Arten von Malware durch einen Hacker verwendet werden, um sensible Informationen zu stehlen, die ein Nutzer in einen Computer eintippt. Daraus ist die Notwendigkeit entstanden, die sensiblen Informationen eines Nutzers vor einem Hacker zu schützen, der Keylogger und andere Arten von Malware benutzt.
  • KURZE BESCHREIBUNG DER ZEICHNUNGEN
  • Die Erfindungen werden anhand der folgenden detaillierten Beschreibung und anhand der begleitenden Zeichnungen einiger Ausführungsformen der Erfindungen besser verstanden. Die Beschreibung und die Zeichnungen dienen jedoch nicht der Beschränkung der Erfindungen auf die konkret beschriebenen Ausführungsformen, sondern lediglich der Erklärung und dem besseren Verständnis.
  • 1 veranschaulicht ein System gemäß einigen Ausführungsformen der Erfindungen.
  • 2 veranschaulicht ein System gemäß einigen Ausführungsformen der Erfindungen.
  • 3 veranschaulicht ein System gemäß einigen Ausführungsformen der Erfindungen.
  • 4 veranschaulicht ein Ablaufdiagramm gemäß einigen Ausführungsformen der Erfindungen.
  • 5 veranschaulicht eine grafische Darstellung gemäß einigen Ausführungsformen der Erfindungen.
  • 6 veranschaulicht ein System gemäß einigen Ausführungsformen der Erfindungen.
  • 7 veranschaulicht ein System gemäß einigen Ausführungsformen der Erfindungen.
  • 8 veranschaulicht ein System gemäß einigen Ausführungsformen der Erfindungen.
  • DETAILLIERTE BESCHREIBUNG
  • Einige Ausführungsformen der Erfindungen betreffen abgesicherte Eingaben für eine Management-Engine. In einigen Ausführungsformen steuert ein Controller ein Eingabegerät, empfängt Eingabeinformationen von dem Eingabegerät, schließt einen Host-Prozessor von der Steuerung des Eingabegerätes aus und sichert die von dem Eingabegerät empfangenen Eingabeinformationen so ab, dass die Eingabeinformationen nicht durch den Host-Prozessor oder durch irgend eine auf dem Host-Prozessor laufende Software empfangen werden.
  • In einigen Ausführungsformen enthält ein Verfahren folgende Schritte: Steuern eines Eingabegerätes, Empfangen von Eingabeinformationen von dem Eingabegerät, Ausschließen eines Host-Prozessors von der Steuerung des Eingabegerätes, und Absichern der von dem Eingabegerät empfangenen Eingabeinformationen in einer solchen Weise, dass die Eingabeinformationen nicht durch den Host-Prozessor oder durch irgend eine auf dem Host-Prozessor laufende Software empfangen werden.
  • In einigen Ausführungsformen arbeitet ein Controller in drei verschiedenen Modi, und zwar: einem ersten Modus, der es ermöglicht, dass Eingabeinformationen von einem Eingabegerät direkt zu einer auf einem Host-Computer laufenden Software fließen; einem zweiten Modus, der es ermöglicht, dass Eingabeinformationen von dem Eingabegerät direkt in einen sicheren Controller fließen, und verhindert, dass die Eingabeinformationen von dem Eingabegerät zu irgend einer auf dem Host-Computer laufenden Software fließen; und einem dritten Modus, der es ermöglicht, dass Eingabeinformationen von dem Eingabegerät direkt in den sicheren Controller fließen, und es außerdem ermöglicht, dass die Eingabeinformationen von dem Eingabegerät zu der auf dem Host-Computer laufenden Software fließen.
  • 1 veranschaulicht ein System 100 gemäß einigen Ausführungsformen. In einigen Ausführungsformen enthält das System 100 einen Computer 102 und einen Remote-Server 104. 1 veranschaulicht, wie ein Endnutzer 110 (zum Beispiel ein Internetkäufer von Waren und/oder Dienste), der einige Interneteinkäufe mittels des Computers 102 tätigt, der (zum Beispiel über das Internet) mit dem Remote-Server 104 verbunden ist, den Angriffen eines Hackers 112 ausgesetzt sein kann. In dem Beispiel des Interneteinkaufs könnte ein gängiges Szenario aus folgenden nummerierten Schritten bestehen:
    Der Endnutzer 110 benutzt einen Internet-Browser, der auf den Computer 102 geladen ist, um auf einer e-Commerce-Website zu surfen und Waren zum Kauf auszusuchen (zum Beispiel über einen Remote-Server 104 einer Website namens „www.buyalot.com”).
  • Der Nutzer 110 wählt einige Waren von der „www.buyalot.com”-Website und legt sie in einen virtuellen Warenkorb.
  • An einem bestimmten Punkt, wenn der Nutzer 110 alle seine Waren in den Korb gelegt hat, klickt er auf die Schaltfläche „Zur Kasse”.
  • Der e-Commerce-Server 104 öffnet ein Formular in einem Fenster für den Nutzer 110 und fordert den Nutzer auf, Zahlungsinformationen in das Formular einzugeben.
  • Der Nutzer 110 gibt sensible Daten in Felder des Formulars ein, wie zum Beispiel eine Kreditkartennummer, eine Telefonnummer, seinen vollständigen Namen, seine Adresse usw.
  • Der e-Commerce-Server 104 sendet an den Nutzer einen Beleg zurück.
  • Während der sensibelsten Abschnitte des oben beschriebenen beispielhaften Szenarios (zum Beispiel während der Schritte 4 und 5) findet die Kommunikation zwischen dem Internet-Browser des Nutzers 110 und dem Server 104 des räumlich abgesetzten Standortes in der Regel auf einer abgesicherten Verbindung 132 statt, wie zum Beispiel einer Secure Socket Lager (SSL) und/oder einer Transfer Lager Security (TLS). Dies verhindert, dass ein Unbefugter, wie zum Beispiel ein Hacker 112 im Internet, der die durch den Nutzer eingegebenen sensiblen Daten abfangen will, diese Daten erhält, ohne zuvor Verschlüsselungsalgorithmen knacken zu müssen, die durch die abgesicherte Verbindung benutzt werden (das heißt, SSL- und/oder TLS-Verschlüsselungsalgorithmen). Das ist dank einer sehr hohen mathematischen Komplexität, mit der sich der Hacker 112 konfrontiert sieht, in der Regel kein Problem. Der Pfeil 134 veranschaulicht einen Versuch des Hackers 112, über dieses Verfahren an Informationen zu gelangen. Über dem Pfeil 134 steht ein „X”, um die außerordentlichen Schwierigkeiten zu veranschaulichen, die bei einem Diebstahlversuch dieser Art zu überwinden sind.
  • Der typische Nutzer 110 ist sich normalerweise bewusst, dass ein gewisser Schutz notwendig ist, um den Diebstahl von persönlichen Informationen, die in ein solches Szenario eingegeben werden, zu verhüten. Zum Beispiel wissen die meisten Nutzer, dass sie auf ein spezielles Symbol achten müssen, dass normalerweise in einer Statusleiste des Internet-Browsers angezeigt wird und das anzeigt, dass die aktuelle Sitzung über eine abgesicherte Verbindung stattfindet. Allerdings kann ein ausgebuffter Hacker 112auch versuchen, die sensiblen Informationen auf einem gänzlich anderen Weg zu stehlen, der nicht durch eine abgesicherte Verbindung 132, wie zum Beispiel SSL oder TLS, gesichert ist. Zum Beispiel kann in einigen Ausführungsformen der Hacker 112 einen Keylogger oder eine andere Malware benutzen, um die sensiblen Informationen zu erlangen, wie über den Pfeil 136 in 1 veranschaulicht ist. Derzeit gibt es eine große Anzahl verschiedener Arten von Keyloggern und/oder anderer Malware, die zum Beispiel in der Lage sind, sich in verschiedene Ebenen des Software-Stacks, der auf dem Computer 102 installiert ist, einzuklinken. Der Einklinkpunkt für die Keylogger und/oder Malware kann beispielsweise auf einer so niedrigen Ebene (das heißt, so Hardware-nah) wie ein Tastatur-Basistreiber oder auf einer so hohen Ebene (das heißt, so Hardware-fern) wie ein Script liegen, das innerhalb des Funktionsbereichs eines Internet-Browsers, der auf dem Computer 102 installiert ist, arbeitet. Darum ist es zwar sehr wichtig, Netzwerkdiebstahlangriffen auf die sensiblen Daten entgegenzuwirken, doch es genügt nicht, Diebstahlangriffe auf sensible Daten vollständig auszuschalten (was beispielsweise zu Identitätsdiebstahl führt).
  • 2 veranschaulicht ein System 200 gemäß einigen Ausführungsformen. In einigen Ausführungsformen enthält das System 200 einen Computer 202 und einen Remote-Server 204. 2 veranschaulicht, wie sich ein Endnutzer 210 (zum Beispiel ein Internetkäufer von Waren und/oder Diensten), der einige Interneteinkäufe über den Computer 202, der (zum Beispiel über das Internet) mit dem Remote-Server 204 verbunden ist, tätigt, vor Angriffen eines Hackers 212 schützen kann. Ähnlich der Anordnung, die mit Bezug auf 1 beschrieben ist, findet die Kommunikation zwischen dem Internet-Browser des Computer 202 des Nutzers und dem Server 204 des räumlich abgesetzten Standortes in der Regel auf einer abgesicherten Verbindung 232 statt, wie zum Beispiel einer Secure Socket Layer (SSL) und/oder einer Transfer Layer Security (TLS). Dies verhindert, dass ein Unbefugter, wie zum Beispiel ein Hacker 212 im Internet, der die durch den Nutzer eingegebenen sensiblen Daten abfangen will, diese Daten erhält, ohne zuvor Verschlüsselungsalgorithmen knacken zu müssen, die durch die abgesicherte Verbindung benutzt werden (das heißt, SSL- und/oder TLS-Verschlüsselungsalgorithmen).
  • Der Computer 202 enthält eine Management-Engine (und/oder Manageability-Engine und/oder ME). In einigen Ausführungsformen ist die ME 242 ein Mikrocontroller und/oder ein eingebetteter Controller. In einigen Ausführungsformen ist die ME 242 in einem Chipsatz des Computers 202 enthalten. In einigen Ausführungsformen ist die ME 242 in einem Memory-Controller-Hub (MCH) des Computers 202 enthalten. In einigen Ausführungsformen ist die ME 242 in einem Graphics-and-Memory-Controller-Hub des Computers 202 enthalten.
  • In einigen Ausführungsformen kann die ME 242 unter Verwendung eines eingebetteten Controllers implementiert sein, der ein CPU-interner Verwaltungsmechanismus zum räumlich abgesetzten Entdecken, Heilen und Schützen von Computersystemen ist. In einigen Ausführungsformen wird dieser Controller als Basis für Softwarelösungen verwendet, um beispielsweise wichtige Manageability-Probleme zu lösen, die Effizienz von Fernmanagement- und Asset-Inventory-Funktionen in Verwaltungssoftware von Dritten zu verbessern oder die Funktionalität missionskritischer Agents vor Betriebssystem(BS)-Ausfällen, Stromausfall und absichtlichem oder versehentlichem Abkoppeln von Clients zu schützen. In einigen Ausführungsformen unterstützt die Infrastruktur die Erzeugung von Setup- und Konfigurationsschnittstellen für Verwaltungsanwendungen sowie Netzwerk-, Sicherheits- und Speicheradministration. Die Plattform bietet Verschlüsselungsunterstützung mittels Transport Layer Security (TLS) sowie zuverlässige Authentifizierungsunterstützung.
  • In einigen Ausführungsformen ist die ME eine Hardware-Architektur, die in Firmware integriert ist. Ein Mikrocontroller innerhalb eines Graphics-and-Memory-Controller-Hubs eines Chipsatzes beherbergt Management-Engine(ME)-Firmware, die verschiedene Dienste im Auftrag von Verwaltungsanwendungen implementiert. Lokal kann die ME Aktivitäten, wie zum Beispiel den Heartbeat eines lokalen Verwaltungs-Agent, überwachen und automatisch Korrekturmaßnahmen einleiten. Räumlich abgesetzt können die externen Systeme mit der ME-Hardware kommunizieren, um Diagnose- und Wiederherstellungsaktionen durchzuführen, wie zum Beispiel das Installieren, Laden oder Neustarten von Agents, Diagnoseprogrammen, Treibern und sogar Betriebssystemen.
  • Personal-Guard-Technologie, die in dem System 200 enthalten ist, kann dafür verwendet werden, sämtliche versuchten Angriffe von Keyloggern und anderen Arten von Malware komplett abzuwehren. In einigen Ausführungsformen übernimmt die Management-Engine (und/oder Manageability-Engine und/oder ME) 242, die in dem Computer 202 enthalten ist, die Kontrolle über die Tastatur des Computers 202 und richtet einen vertrauenswürdigen Pfad zwischen dem Nutzer 210 und der ME 242 über jegliche Eingabegeräte des Computers 202, wie zum Beispiel die Tastatur, ein. Außerdem richtet die ME 242 einen abgesicherten Pfad (wenn auch keine Direktverbindung) zwischen der ME 242 und dem Remote-Server 204 ein.
  • Wenn die sensiblen Daten über die ME 242 eingespeist werden, so verschlüsselt die ME 242 praktisch die sensiblen Daten, die zum Beispiel der Nutzer 210 eintippt, bevor die auf dem Computer 202 laufende Software die Daten erhält (zum Beispiel sensible Daten wie Kreditkartennummern, Telefonnummern, vollständige Namen, Adressen usw.). Wenn also die Software, die auf dem Host-Prozessor, zum Beispiel dem Computer 202, läuft, die Daten handhabt, so sind diese bereits verschlüsselt und deshalb für Keylogger nicht verwertbar, wenn der Hacker 212 versucht, die Daten über den Pfeil 236 zu stehlen. Das heißt, ganz egal, welche Art von Keylogger in der Lage ist, in den Computer 202 einzudringen, und momentan auf dem Host-Prozessor des Computers 202 als Teil des Software-Stacks läuft – die sensiblen Daten des Nutzers 210 werden geheim gehalten, wenn Personal-Guard-Operationen (zum Beispiel über die ME 242) verwendet werden, während der Nutzer 210 die Daten eintippt.
  • In 2 ist die Verwendung von Personal-Guard-Operationen beschrieben, um Hackerangriffen, wie zum Beispiel mittels Keyloggern, entgegenzuwirken, damit die durch einen Nutzer eingegebenen sensiblen Daten nicht gestohlen werden können. Es ist jedoch anzumerken, dass eine Management-Engine, wie zum Beispiel die ME 242 von 2, nicht für alle Ausführungsformen erforderlich ist und dass auch andere Bauelemente dafür verwendet werden können, die gleichen Arten von Operationen zu implementieren, die im vorliegenden Text beschrieben sind. Des Weiteren sind eine ME der Marke Intel und/oder ein Intel-AMT nicht für alle Ausführungsformen erforderlich, und es können auch andere Bauelemente verwendet werden, um die gleichen Arten von Operationen zu implementieren, die im vorliegenden Text beschrieben sind.
  • 3 veranschaulicht ein System 300 gemäß einigen Ausführungsformen. In einigen Ausführungsformen enthält das System 300 ein Eingabegerät 302 (zum Beispiel eine Tastatur, eine Maus und/oder eine andere Art von Eingabegerät), ein Betriebssystem (BS) und/oder einen Internet-Browser 304, einen Remote-Server 306 und einen Hacker (und/oder einen Hacker-Computer) 308. 3veranschaulicht einen Unterschied zwischen einem System, das durch Internet-basierte Verschlüsselung, wie zum Beispiel SSL oder TLS, geschützt ist (im oberen Teil von 3), und einem System, das mit Personal-Guard-Technologie geschützt ist (im unteren Teil von 3). Im oberen Teil von 3 findet eine abgesicherte Verbindung 312 (zum Beispiel unter Verwendung von SSL und/oder TLS und/oder Tunneling-Technologie) zwischen dem BS/Internet-Browser 304 und dem Remote-Server 306 statt, und eine Software-basierte Eingabe/Ausgabe 314 findet zwischen dem Eingabegerät 302 und dem BS/Internet-Browser 304 statt. In dem Szenario, das oben in 3 veranschaulicht ist, kann der Hacker 308 Malware und/oder Keylogger verwenden, um sensible Dateneingaben eines Nutzers abzufangen und zu nutzen. Unten in 3 hingegen besteht gemäß einigen Ausführungsformen beispielsweise eine abgesicherte Verbindung 322 zwischen einem Abschnitt 342 eines Nutzer-Computers (zum Beispiel einer Management-Engine oder der ME) und dem BS/Internet-Browser 304 unter Verwendung von Personal-Guard-Technologie. Außerdem werden gemäß einigen Ausführungsformen beispielsweise bei 324 sensible Daten zwischen dem Abschnitt 342 (wie zum Beispiel einer ME) und dem Remote-Server 306 unter Verwendung von Personal-Guard-Technologie verschlüsselt. Auf diese Weise können keine Software-basierten Keylogger und andere Arten von Malware verwendet werden, um sensible Informationseingaben eines Nutzers am Eingabegerät 302 zu stehlen.
  • 4 veranschaulicht ein Ablaufdiagramm 400 gemäß einigen Ausführungsformen. Das Ablaufdiagramm 400 enthält einen Nutzer 402, einen Computer 404 des Nutzers 402 und einen Server (zum Beispiel einen e-Commerce-Webserver) 406. Der Computer 404 enthält System-Eingabe/Ausgabe-Hardware (System-E/A-HW) 412, ein Eingabegerät (zum Beispiel eine Tastatur und/oder eine Maus) 414, eine Management-Engine (und/oder Manageability-Engine und/oder ME) 416, einen Browser 418 und ein Plug-in 420. Die System-E/A-HW 412, das Eingabegerät 414 und die ME 416 sind alle beispielsweise in Hardware und/oder Firmware implementiert, und der Browser 418 und das Plug-in 420 sind alle beispielsweise in Software implementiert. Der Nutzer 402 ist eine Person, die zum Browsen an einem räumlich abgesetzten Standort einen Computer 404 benutzt, für den eine abgesicherte Eingabe erwünscht ist. Der Nutzer 402 möchte die Eingaben unter Verwendung von Personal-Guard-Technologie absichern, um sensible Informationen (zum Beispiel im Rahmen einer Transaktion) an den Remote-Server 406 zu senden. Die System-E/A-HW 412 ist eine Kern-E/A-Steuerungsimplementierung innerhalb des Computers 404, der durch den Nutzer 402 verwendet wird. Sie ist beispielsweise in dem Chipsatz des Computers 404 implementiert und enthält Module, die abgesicherte Eingaben und abgesicherte Ausgaben unterstützen. Das Eingabegerät 414 ist ein externes Hardwaregerät, über das der Nutzer 402 sensible Daten eingibt (zum Beispiel durch Eintippen der sensiblen Daten auf einer Tastatur). Die ME 416 ist ebenfalls beispielsweise in dem Chipsatz des Computers 404 des Nutzers 402 enthalten und steuert die abgesicherten E/A-Datenflüsse der System-E/A-HW und implementiert (zum Beispiel in Firmware) den Hauptdatenfluss des Personal Guard. Der Browser 418 ist die Software, die der Nutzer 402 normalerweise auf dem Computer 404 ausführt, um Websites im Internet zu browsen. Es ist anzumerken, dass gemäß einigen Ausführungsformen Personal-Guard-Technologie verwendet werden kann, um beispielsweise den abgesicherten Login von anderen Internet-Technologien zu stärken; das heißt, ein Webbrowser ist nur ein Beispiel und ist in einigen Ausführungsformen nicht erforderlich. Das Plug-in 420 ist ein Browser-Plug-in, das dafür verwendet wird, Daten zwischen der ME 416 (und/oder der Personal-Guard-Firmware-Anwendung) und dem Remote-Server 406 zu transportieren. Der Remote-Server 406 (zum Beispiel ein e-Commerce-Webserver) ist ein Server, mit dem der Nutzer 402 einige Transaktionen ausführt. Der Server 406 weiß, dass die Personal-Guard-Technologie durch die ME 416 verwendet wird, und ist darum in der Lage, den Vorteil von abgesicherten Transaktionen zu realisieren.
  • In einigen Ausführungsformen klickt der Nutzer 402 auf eine Auswahl, wie zum Beispiel „Bezahlung mit Personal Guard”, woraufhin die Browser-Software 418 dann die Personal-Guard-Unterstützung mit dem Server 406 aktiviert. Der Server 406 sendet dann ein Personal-Guard-Plug-in und Daten (zum Beispiel „blob1”) über den Browser 418 an das Personal-Guard-Plug-in 420. Das Plug-in 420 sendet dann ein „Personal Guard initiieren”-Signal an die ME 416, die dann die Daten („blob1”) validiert und den Nutzer-Computer 404 veranlasst, in einen sicheren Modus einzutreten, woraufhin dem Nutzer 402 ein Popup-Fenster angezeigt wird, in das der Nutzer gefahrlos sensible und/oder geheime Daten eingeben kann. Der Nutzer 402 gibt diese Daten über das Eingabegerät 414 geheim und sicher ein, und die ME 416 verschlüsselt die Daten (zum Beispiel zu „blob2”). Die verschlüsselten Daten werden dann über den Browser 418 und/oder die Plug-in 420-Software an den Server 406 gesendet (zum Beispiel als „message2”). Der Server 406 sendet eine Empfangsbestätigung an den Computer 404 zurück, die dem Nutzer 402 präsentiert wird. Auf diese Weise werden alle sensiblen und/oder geheimen Dateneingaben durch den Nutzer 402 an den Server 406 über den Computer 404 sicher übermittelt, und Softwarebasierte Keylogger und/oder andere Arten von Malware können keine der eingegebenen Daten stehlen.
  • 5 veranschaulicht eine grafische Darstellung 500 gemäß einigen Ausführungsformen. Die grafische Darstellung 500 enthält eine Website 502 eines Anbieters (wie zum Beispiel einer Bank oder einer Einkaufs-Website usw.) Zusätzlich zu, oder anstelle von, dem typischen Website-Login kann ein spezieller Personal-Guard-Login verwendet werden. Ein Personal-Guard-Fenster 504 wird auf dem Schirm beispielsweise über oder neben der angezeigten Website durch eine ME als abgesicherte Grafikausgabe ausgegeben, durch die ein Nutzer mit der ME kommuniziert, um sensible Informationen zu transportieren (wie zum Beispiel Kreditkartennummern, Login-Authentifizierungen, ein Passwort zum Einloggen in eine Website, Telefonnummer, vollständiger Name des Nutzers, Adressen, Sozialversicherungsnummern usw.)
  • Ein Personal-Guard-Plug-in veranlasst die ME, das Personal-Guard-Fenster 504 anzuzeigen. Das Fenster 504 kann beispielsweise nicht durch Software, die auf der CPU läuft, erfasst werden. Wenn Daten durch die ME verschlüsselt werden, so werden sie an den Server der Website gesendet (zum Beispiel eine Bank-Website, wie in 5 gezeigt). Der Server der Website ist der einzige, der die Daten entschlüsseln und beispielsweise die Benutzerkennwort- und/oder Passwort-Daten erhalten kann. Das Fenster 504 enthält zum Beispiel ein spezielles Benutzerkennwort, das einem Nutzer die Gewähr gibt, dass die ME dieses Fenster erzeugt hat (zum Beispiel „Benutzerkennwort: superman”), eine Animation (zum Beispiel „A” oben links im Fenster 504), die ausgeführt wird, wenn Nutzereingaben in die ME fließen, eine explizite URL des Remote-Servers, um IP-Adressvortäuschungen vorzubeugen, was die wichtigste Phishing-Technik von Hackern ist (zum Beispiel in 5www.bank.intel.com”), Nutzer-Authentifizierungen wie zum Beispiel Benutzerkennwort, Passwort usw., die in einem gesicherten Speicher der ME abgelegt sind, so dass ein Nutzer die Daten nicht jedes Mal eingeben muss (nach dem ersten ME-Login). Die abgesicherte Eingabe erlaubt es dem Nutzer, die Daten einzugeben und zu bearbeiten. Die Nutzerdaten können im Fenster 504 im Klartext angezeigt werden oder können vollständig oder teilweise verdeckt werden, beispielsweise wie „********”; aber in keinem Fall – ob die Daten nun im Fenster 504 angezeigt werden oder nicht – können sie durch eine Software-Anwendung, die auf dem Nutzer-Computer läuft, oder durch einen Hacker, der versucht, Keylogger-Software und/oder andere Malware einzusetzen, gelesen werden.
  • 6 veranschaulicht ein System 600 gemäß einigen Ausführungsformen. Das System 600 enthält einen Chipsatz 602 und ein Betriebssystem (BS) 604. Der Chipsatz 602 enthält einen eingebetteten Controller 622, eine sichere Eingabekontrolle 624 und Eingabegerätschnittstellen 626. In einigen Ausführungsformen enthalten die Eingabegerätschnittstelle 626 eine Universal Serial Bus(USB)-Schnittstelle und eine PS/2-Schnittstelle, aber sie können auch andere Arten von Eingabegerätschnittstellen als USB- und PS/2-Schnittstellen oder zusätzliche Arten von Eingabegerätschnittstellen neben USB- und PS/2-Schnittstellen enthalten (zum Beispiel in einigen Ausführungsformen, die Bluetooth-Eingabegeräte mit einer Bluetooth-Schnittstelle verwenden). Eingabegerätschnittstellen 626 können mit einer Vielzahl unterschiedlicher externer Nutzereingabegeräte 632 gekoppelt werden. Eine Tastatur und eine Maus sind in 6 als Beispiele der Arten von externen Eingabegeräten 632 veranschaulicht, die enthalten sein können, aber in einigen Ausführungsformen werden auch andere Arten von externen Eingabegeräten verwendet. Der eingebettete Controller 622 enthält des Weiteren eine sichere Eingabe/Ausgabe (E/A)-Engine 628, die mit der sicheren Eingabekontrolle 624 gekoppelt ist. Das BS 604 enthält einen Eingabegeräte-Softwarestack 642, der mit der sicheren Eingabekontrolle 624 des Chipsatzes 602 gekoppelt ist.
  • In einigen Ausführungsformen kann der eingebettete Controller 622 die Daten von den externen Eingabegeräten 632 durch Hinzufügen einer sicheren Eingabekontrolle 624 zu dem Chipsatz 602 empfangen. Es ist anzumerken, dass der eingebettete Controller 622 in 6 in den Chipsatz 602 integriert ist; aber es ist anzumerken, dass der eingebettete Controller 622 in einigen Ausführungsformen in einer diskreten Komponente enthalten sein kann, in einen anderen Chip eingebettet sein kann und/oder auf einer Platine des Computers angeordnet sein kann, wie zum Beispiel auf dem Mainboard oder Motherboard des Computers. In einigen Ausführungsformen ist der eingebettete Controller 622 eine Management-Engine, eine Manageability-Engine und/oder eine ME (die alle im vorliegenden Text auch als „ME” bezeichnet werden). In einigen Ausführungsformen ist die ME in den Chipsatz eingebettet (zum Beispiel in einen Memory-Controller-Hub oder MCH eines Chipsatzes eingebettet).
  • In einigen Ausführungsformen steuert der eingebettete Controller 622 den Betrieb in einer solchen Weise, dass Eingabedaten direkt in die BS 604 und/oder in Software, die auf dem Computer abläuft, fließen. In einigen Ausführungsformen steuert der eingebettete Controller 622 den Betrieb in einer solchen Weise, dass Eingabedaten direkt in den eingebetteten Controller 622 und nicht in die BS 604 und/oder in Software, die auf dem Computer abläuft, fließen (das heißt, die Eingabe wird gesichert und wird nur durch den eingebetteten Controller 622) gesehen. In einigen Ausführungsformen steuert der eingebettete Controller 622 den Betrieb in einer solchen Weise, dass Eingabedaten direkt in die BS 604 und/oder in Software, die auf dem Computer abläuft, fließen, und in einer solchen Weise, dass Eingabedaten direkt in den eingebetteten Controller 622 fließen.
  • In einigen Ausführungsformen kann ein Nutzer den eingebetteten Controller 622 auch dann auslösen, wenn die aktuelle Konfiguration des Steuerblocks 624 die Eingabedaten direkt und nur an die BS 604 und/oder nur an Software, die auf dem Computer abläuft, senden soll. Dies erlaubt es dem Endnutzer des Computers, die Firmware des eingebetteten Controllers 622 während des normalen Systembetriebes in einer abgesicherten Weise auszulösen, die durch keine Art von Malware, die auf dem Host-Computer läuft, vorgetäuscht werden kann. Zum Beispiel kann ein Nutzer in einigen Ausführungsformen auf einem Nutzereingabegerät 632, wie zum Beispiel einer Tastatur, eine Hotkey-Sequenz eingeben, die den eingebetteten Controller 622 auslöst.
  • In einigen Ausführungsformen wird eine sichere E/A in einer solchen Weise bereitgestellt, dass ein Nutzer direkt mit einem eingebetteten Controller, wie zum Beispiel einem eingebetteten Controller 622 und/oder einer ME, interagieren kann. In einigen Ausführungsformen, einschließlich denen, die in 6 veranschaulicht sind, erlaubt es eine Personal-Guard-Implementierung dem eingebetteten Controller und/oder der ME, mit dem Nutzer zu interagieren und seine vertraulichen Daten in einer abgesicherten Weise (zum Beispiel unter Verwendung von Verschlüsselung) an einen Remote-Webserver zu senden. Malware, die auf dem Host-Computer, der Host-CPU und/oder dem BS läuft, kann diese vertraulichen Daten nicht stehlen.
  • In einigen Ausführungsformen besitzt ein eingebetteter Controller, wie zum Beispiel der eingebettete Controller 622, die Fähigkeit, direkt mit dem Nutzer zu interagieren und Daten von dem Nutzer über ein Eingabegerät in einer abgesicherten Weise zu empfangen. In einigen Ausführungsformen meint „abgesicherte Eingabe”, dass die Eingabedaten nicht den Host-Prozessor (CPU) passieren und darum nicht anfällig für Malware ist, die möglicherweise auf dieser CPU läuft und die versucht, die vom Nutzer eingegebenen Daten zu stehlen.
  • Weitere verwandte Implementierungen sicherer Eingaben durch Eingabegeräte sind in anderen Anmeldungen beschrieben, die durch den Erfinder dieser Anmeldung und/oder durch den Rechtsnachfolger dieser Anmeldung eingereicht wurden. Zum Beispiel ist in einer Anmeldung mit dem Titel „Secure Input” an Douglas Gabel und Moshe Maor, Anwaltsregisternummer P26882, eine Implementierung offenbart, die in einigen Ausführungsformen USB-Eingabegeräte betrifft.
  • 7 veranschaulicht ein System 700 gemäß einigen Ausführungsformen. Das System 700 enthält eine Input/Output-Controller-Hub(ICH)-Logik 702 und externe Eingabegeräteports 705. In einigen Ausführungsformen können beliebige Anzahlen von Ports 705 vorhanden sein. In einigen Ausführungsformen sind die Ports 705 externe USB-Ports. Die ICH-Logik 702 enthält Universal-Host-Controller-Interfaces und/oder USB-Host-Controller-Interfaces 706 (UHCI) UHCI Nr. 1, UHCI Nr. 2, ..., UHCI Nr. n, wobei n die Anzahl von UHCIs ist und n eine ganze Zahl von mindestens 1 ist. In einigen Ausführungsformen, wie zum Beispiel in USB-Ausführungsformen, ist jede der UHCIs mit zwei Ports 705 gekoppelt und kann zwei Ports 705 handhaben. In einigen Ausführungsformen ist jede der UHCIs 706 über eine Host-Schnittstelle 716 mit dem Host-Computer gekoppelt, um eine Host-Steuerung der UHCIs 706 zu ermöglichen. Die ICH-Logik 702 enthält außerdem eine Enhanced-Host-Controller-Interface (EHCI) 708, die mit jedem der Ports 705 gekoppelt ist. In einigen Ausführungsformen ist die EHCI 708 über eine Host-Schnittstelle 718 mit dem Host-Computer gekoppelt, um eine Host-Steuerung der EHCI 708 zu ermöglichen.
  • In einigen Ausführungsformen enthält die ICH-Logik 702 des Weiteren einen Multiplexer (MUX) 722 und eine ME-UHCI 724, die direkt durch eine ME gesteuert wird. Das System 700 enthält außerdem einen ME:UHCI-Treiber 726, um die ME-UHCI 724 mit der ME zu koppeln, und eine ME:Routing-Steuerschnittstelle 728.
  • 8 veranschaulicht ein System 800 gemäß einigen Ausführungsformen. Das System 800 enthält einen Input/Output-Controller-Hub (ICH) 802, einen Memory-Controller-Hub (MCH) 804 und externe Eingabegeräteports 805. In einigen Ausführungsformen können beliebige Anzahlen von Ports 805 vorhanden sein. In einigen Ausführungsformen sind die Ports 805 externe USB-Ports. Die ICH 802 enthält Universal-Host-Controller-Interfaces und/oder USB-Host-Controller-Interfaces 806 (UHCI) UHCI Nr. 1, UHCI Nr. 2, ..., UHCI Nr. n, wobei n die Anzahl von UHCIs ist und n eine ganze Zahl von mindestens 1 ist. In einigen Ausführungsformen, wie zum Beispiel in USB-Ausführungsformen, ist jede der UHCIs mit zwei Ports 805 gekoppelt und kann zwei Ports 805 handhaben. In einigen Ausführungsformen ist jede der UHCIs 806 über eine Host-Schnittstelle 816 und über ein Backbone 880 mit dem Host-Computer gekoppelt, um eine Host-Steuerung der UHCIs 806 zu ermöglichen. Die ICH 802 enthält außerdem eine Enhanced-Host-Controller-Interface (EHCI) 808, die mit jedem der Ports 805 gekoppelt ist. In einigen Ausführungsformen ist die EHCI 808 über eine Host-Schnittstelle 818 der ICH 802 und über das Backbone 880 mit dem Host-Computer gekoppelt, um eine Host-Steuerung der EHCI 808 zu ermöglichen.
  • In einigen Ausführungsformen enthält die ICH 802 des Weiteren einen Multiplexer (MUX) 822 und eine ME-UHCI 824, die direkt durch eine ME 852 des MCH 804 gesteuert wird. Das System 800 enthält außerdem einen ME:UHCI-Treiber 826, um die ME-UHCI 824 mit der ME 852 zu koppeln, und eine ME:Routing-Steuerschnittstelle 828, um die ME 852 mit dem MUX 822 zu koppeln. Die ME 852 des MCH 804 enthält einen Schnittstellen-Stack 854 (zum Beispiel einen USB-Stack), eine Schnittstellensteuerung 856 (zum Beispiel eine USB-Steuerung) und Personal-Guard-Technologie 858. Die ME 852 enthält des Weiteren einen programmierbaren Gerätetreiber 862, der über eine Durchgangsschnittstelle 864 mit einem programmierbaren Schnittstellengerät 832 der ICH 802 (zum Beispiel einem programmierbaren USB-Gerät) gekoppelt ist.
  • In einigen Ausführungsformen wird ein vertrauenswürdiger Pfad zwischen einem abgesicherten Nutzer und einer ME bereitgestellt, indem eine Direktsteuerung eines Eingabegerätes, wie zum Beispiel einer Tastatur, durch die ME gestattet wird (zum Beispiel, in einigen Ausführungsformen, durch die ME 852). Tastaturanschläge, die durch einen Nutzer ausgeführt werden, kann durch keine Art von Software gesehen werden, die auf dem Host-Rechner läuft, sondern werden statt dessen durch eine ME empfangen (zum Beispiel die ME 852). Die im vorliegenden Text veranschaulichte und beschriebene Verfahrensweise ist besonders dort geeignet, wo Tastaturanschläge von einer Nutzer-Tastatur über eine Host-Computer-Softwarekomponente zu einer ME transportiert werden, weil bei dieser Verfahrensweise kein Schutz vor Schadsoftware (das heißt Malware) geboten wird, die möglicherweise auf der Host-CPU läuft, um beispielsweise die Tastaturanschläge zu registrieren.
  • In einigen Ausführungsformen hat, um sichere Eingaben von einem Eingabegerät, wie zum Beispiel einer USB-Tastatur, zu ermöglichen, eine ME (zum Beispiel die ME 852) die volle Kontrolle über das Eingabegerät anstelle des Host-Prozessors. Jedoch läuft das System die meiste Zeit nicht in einem Modus, in dem die eigentlichen Nutzereingaben (Tastaturanschläge) durch die ME aufgenommen werden müssen. Darum nimmt die ME in einigen Ausführungsformen die Nutzereingaben auf und leitet sie an den Host-Prozessor weiter. Wenn ein abgesichertes Eingabeszenario erforderlich ist, so nimmt die ME einfach die Eingaben selbst auf und leitet die ankommenden Daten nicht an die Host-Software weiter.
  • In einigen Ausführungsformen ist eine Routing-Logik in dem Chipsatz enthalten, die es ermöglicht, dass die ME das Eingabegerät (zum Beispiel eine Tastatur) steuert. In einigen Ausführungsformen ist ein ME-Host-Controller, wie zum Beispiel ein ME-USB-Host-Controller, an ein Eingabegerät angeschlossen, so dass die ME es steuern kann (zum Beispiel die ME-UHCI 724 und/oder die ME-UHCI 824). In einigen Ausführungsformen wird ein Eingabegeräte-Firmware-Stack in der ME (zum Beispiel ist der USB-Stack 854 in der ME 852 ein USB-Firmware-Stack) verwendet, um alle Geräte aufzulisten (alle USB-Geräte aufzulisten), um vom Menschen bediente Eingabegeräte (Human Input Devices – HIDs) zu identifizieren, die sie steuern will, um dieses Gerät zu steuern (zum Beispiel, um eine Tastatur oder eine Maus zu steuern), und/oder zu Endpunkten (USB-Endpunkten) durchzuleiten, die nicht Teil der Boot-Tastatur sind (zum Beispiel Schnittstellen, die dafür verwendet werden, neue Tasten zu exponieren, wie zum Beispiel Audio- und Leistungssteuerung). In einigen Ausführungsformen ist ein programmierbares Gerät (zum Beispiel ein programmierbares USB-Gerät 832) in der ICH enthalten, um eine virtuelle Tastatur zu exponieren, durch die alle nicht-abgesicherten Eingaben geleitet werden können. In einigen Ausführungsformen – wann immer ein Eingabegerät, wie zum Beispiel eine Tastatur, Eingaben erzeugt, die zu der Host-CPU fließen müssen – emuliert das programmierbare Gerät (zum Beispiel das programmierbare USB-Gerät 832) das Eingabegerät (wie zum Beispiel eine Tastatur), das durch die Host-CPU gesteuert wird. Durch dieses emulierte Eingabegerät kann die ME die ankommenden Tastaturanschläge weitersenden.
  • In einigen Ausführungsformen wird eine ME-UHCI (zum Beispiel die ME-UHCI 724 und/oder die ME-UHCI 824) in die ICH hinzugefügt. Die ME-UHCI wird direkt durch eine ME (zum Beispiel die ME 852) gesteuert. Eine ME-gesteuerte Routing-Logik (zum Beispiel die ME:UHCI-Treiber 726 und/oder 826 und/oder die ME:Routing-Steuerung 728 und/oder 828) wird hinzugefügt, die es der ME erlaubt, jedes verbundene Gerät (wie zum Beispiel ein USB-Gerät) über die ME-UHCI zu steuern.
  • Obgleich einige Ausführungsformen im vorliegenden Text als in einer bestimmten Weise implementiert beschrieben wurden, sind diese bestimmten Implementierungen gemäß einigen Ausführungsformen nicht unbedingt erforderlich. Obgleich zum Beispiel einige Ausführungsformen so beschrieben wurden, dass sie eine ME verwenden, erfordern andere Ausführungsformen nicht die Verwendung einer ME.
  • Obgleich einige Ausführungsformen unter Bezug auf konkrete Implementierungen beschrieben wurden, sind gemäß einigen Ausführungsformen auch andere Implementierungen möglich. Außerdem brauchen die Anordnung und/oder die Reihenfolge der Schaltkreiselemente oder andere Merkmale, die in den Zeichnungen veranschaulicht und/oder im vorliegenden Text beschrieben sind, nicht der konkret veranschaulichten und beschriebenen Art und Weise zu entsprechen. Gemäß einigen Ausführungsformen sind viele anderen Anordnungen möglich.
  • In jedem System, das in einer Figur gezeigt ist, können die Elemente in einigen Fällen jeweils die gleiche Bezugszahl oder eine anderen Bezugszahl haben, um anzuzeigen, dass die dargestellten Elemente verschieden und/oder ähnlich sein könnten. Jedoch kann ein Element auch so flexibel sein, dass verschiedenen Implementierungen möglich sind und dass es mit einigen oder allen der im vorliegenden Text gezeigten oder beschriebenen Systeme zusammenarbeiten kann. Die in den Figuren gezeigten verschiedenen Elemente können gleich oder voneinander verschieden sein. Welches als ein erstes Element bezeichnet wird und welches als ein zweites, ist irrelevant.
  • In der Beschreibung und in den Ansprüchen können die Begriffe „gekoppelt” und „verbunden” zusammen mit ihren Ableitungen verwendet werden. Es ist zu beachten, dass diese Begriffe nicht als Synonyme für einander gedacht sind. Vielmehr kann in bestimmten Ausführungsformen „verbunden” verwendet werden, um anzuzeigen, dass zwei oder mehr Elemente in direktem physischem oder elektrischem Kontakt miteinander stehen. „Gekoppelt” kann bedeuten, dass zwei oder mehr Elemente in direktem physischem oder elektrischem Kontakt stehen. Jedoch kann „gekoppelt” außerdem bedeuten, dass zwei oder mehr Elemente nicht in direktem Kontakt miteinander stehen, aber trotzdem zusammenwirken oder miteinander interagieren.
  • Ein Algorithmus gilt hier, und allgemein, als eine in sich geschlossene Abfolge von Aktionen oder Operationen, die zu einem gewünschten Ergebnis führen. Dazu gehören physikalische Manipulationen physikalischer Quantitäten. Gewöhnlich, wenn auch nicht notwendigerweise, nehmen diese Quantitäten die Form elektrischer oder magnetischer Signale an, die gespeichert, übertragen, kombiniert, verglichen, und auf sonstige Weise gehandhabt werden können. Es hat sich gelegentlich als zweckmäßig erwiesen, besonders aus Gründen des einheitlichen Sprachgebrauchs, diese Signale als Bits, Werte, Elemente, Symbole, Zeichen, Terme, Nummern oder dergleichen zu bezeichnen. Es ist jedoch zu beachten, dass alle diese und ähnliche Termini mit den entsprechenden physikalischen Quantitäten zu assoziieren sind und lediglich zweckmäßige Bezeichner sind, die diesen Quantitäten beigegeben werden.
  • Einige Ausführungsformen können in Hardware, Firmware oder Software oder in Kombinationen daraus implementiert werden. Einige Ausführungsformen können auch als Instruktionen implementiert werden, die auf einem maschinenlesbaren Medium gespeichert sind und durch eine Computerplattform gelesen und ausgeführt werden können, um die im vorliegenden Text beschriebenen Operationen auszuführen. Ein maschinenlesbares Medium kann einen beliebigen Mechanismus zum Speichern oder Übertragen von Informationen in einer Form enthalten, die durch eine Maschine (zum Beispiel einen Computer) gelesen werden kann. Zum Beispiel kann ein maschinenlesbares Medium einen Nurlesespeicher (ROM), einen Direktzugriffsspeicher (RAM), ein Magnetdiskettenspeichermedium, ein optisches Speichermedium, Flashspeicherbausteine, eine elektrische, optische, akustische oder sonstige Form ausgebreiteter Signale (zum Beispiel Trägerwellen, Infrarotsignale, digitale Signale, die Schnittstellen, die Signale senden und/oder empfangen, usw.) und anderes enthalten.
  • Eine Ausführungsform ist eine Implementierung oder ein Beispiel der Erfindungen. Wenn in der Spezifikation von „einer Ausführungsform”, „einer bestimmten Ausführungsform”, „einigen Ausführungsformen” oder „anderen Ausführungsformen” gesprochen wird, so bedeutet das, dass ein bestimmtes Merkmal, eine bestimmte Struktur oder eine bestimmte Eigenschaft, das bzw. die in Verbindung mit den Ausführungsformen beschrieben ist, mindestens in einigen Ausführungsformen, aber nicht unbedingt in allen Ausführungsformen der Erfindungen enthalten ist. Die verschiedenen Ausdrucksweisen „eine Ausführungsform”, „eine bestimmte Ausführungsform” oder „einige Ausführungsformen” beziehen sich nicht unbedingt alle auf dieselben Ausführungsformen.
  • Nicht alle Komponenten, Merkmale, Strukturen, Eigenschaften usw., die im vorliegenden Text beschrieben und veranschaulicht sind, brauchen in einer bestimmten Ausführungsform oder in bestimmten Ausführungsformen enthalten zu sein. Wenn die Spezifikation zum Beispiel besagt, dass eine Komponente, ein Merkmal, eine Struktur oder eine Eigenschaft enthalten sein „kann” oder „könnte”, so ist es nicht erforderlich, dass die bestimmte Komponente, das bestimmte Merkmal, die bestimmte Struktur oder die bestimmte Eigenschaft auch tatsächlich enthalten ist. Wenn in der Spezifikation oder einem Anspruch von „einem” Element gesprochen wird, so bedeutet das nicht, dass es lediglich ein einziges solches Element gibt. Wenn die Spezifikation oder die Ansprüche von „einem zusätzlichen” Element sprechen, so schließt das nicht aus, dass auch mehrere der zusätzlichen Elemente vorhanden sein können.
  • Obgleich im vorliegenden Text Prozessablaufdiagramme und/oder Zustandsdiagramme verwendet worden sein können, um Ausführungsformen zu beschreiben, sind die Erfindungen nicht auf diese Diagramme oder auf entsprechende Beschreibungen im vorliegenden Text beschränkt. Zum Beispiel braucht der Prozessablauf nicht durch jedes veranschaulichte Kästchen oder jeden veranschaulichten Zustand hindurch zu verlaufen, oder braucht sich nicht in exakt der gleichen Reihenfolge zu vollziehen, wie es im vorliegenden Text veranschaulicht und beschrieben ist.
  • Die Erfindungen sind nicht auf die im vorliegenden Text genannten konkreten Details beschränkt. Der Fachmann, der in den Genuss der vorliegenden Offenbarung kommt, erkennt natürlich, dass viele weitere Variationen der vorangegangenen Beschreibung und der Zeichnungen vorgenommen werden können, ohne den Geltungsbereich der Erfindungen zu verlassen. Dementsprechend sind es die folgenden Ansprüche einschließlich ihrer Änderungen, die den Geltungsbereich der Erfindungen definieren.
  • ZUSAMMENFASSUNG
  • In einigen Ausführungsformen steuert ein Controller ein Eingabegerät, empfängt Eingabeinformationen von dem Eingabegerät, schließt einen Host-Prozessor von der Steuerung des Eingabegerätes aus und sichert die von dem Eingabegerät empfangenen Eingabeinformationen so ab, dass die Eingabeinformationen nicht durch den Host-Prozessor oder durch irgend eine auf dem Host-Prozessor laufende Software empfangen werden. Es werden noch weitere Ausführungsformen beschrieben und beansprucht.
  • ZITATE ENTHALTEN IN DER BESCHREIBUNG
  • Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
  • Zitierte Nicht-Patentliteratur
    • - www.buyalot.com [0016]
    • - www.buyalot.com [0017]
    • - www.bank.intel.com [0035]

Claims (31)

  1. Vorrichtung, die Folgendes umfasst: einen Controller zum Steuern eines Eingabegeräts, zum Empfangen von Eingabeinformationen von dem Eingabegerät, zum Ausschließen eines Host-Prozessors von der Steuerung des Eingabegerätes und zum Absichern der von dem Eingabegerät empfangenen Eingabeinformationen dergestalt, dass die Eingabeinformationen nicht durch den Host-Prozessor oder durch irgend eine auf dem Host-Prozessor laufende Software empfangen werden.
  2. Vorrichtung nach Anspruch 1, die des Weiteren eine Host-Controller-Schnittstelle umfasst, um eine Verbindung zwischen dem Eingabegerät und dem Controller herzustellen, ohne dem Host-Prozessor das Steuern des Eingabegerätes zu gestatten.
  3. Vorrichtung nach Anspruch 1, wobei der Controller gestattet, dass einige Eingabeinformationen von dem Eingabegerät durch den Host-Prozessor empfangen werden.
  4. Vorrichtung nach Anspruch 1, wobei der Controller verhindert, dass Eingabeinformationen von dem Eingabegerät durch den Host-Prozessor empfangen werden.
  5. Vorrichtung nach Anspruch 1, die des Weiteren ein Bauelement umfasst, um das Eingabegerät zu emulieren, um es dem Controller zu erlauben, Eingabeinformationen von dem Eingabegerät an den Host-Prozessor zu senden.
  6. Vorrichtung nach Anspruch 1, die des Weiteren eine Routing-Logik umfasst, die es dem Controller ermöglicht, das Eingabegerät zu steuern.
  7. Vorrichtung nach Anspruch 1, wobei das Eingabegerät ein Universal Serial Bus-Eingabegerät ist.
  8. Vorrichtung nach Anspruch 1, wobei der Controller einen Firmware-Stack enthält, um Eingabegeräte aufzulisten, um es zu ermöglichen, dass der Controller ein oder mehrere Eingabegeräte zum Steuern identifiziert, und wobei der Firmware-Stack zum Steuern der identifizierten Geräte dient.
  9. Vorrichtung nach Anspruch 1, wobei der Controller dazu dient, ein oder mehrere Eingabegeräte zum Steuern zu identifizieren und die identifizierten Geräte zu steuern.
  10. Vorrichtung nach Anspruch 1, wobei der Controller die volle Kontrolle über das Eingabegerät ausüben soll.
  11. Vorrichtung nach Anspruch 1, wobei der Controller in einem Chipsatz enthalten ist.
  12. Vorrichtung nach Anspruch 1, wobei der Controller ein diskreter Controller ist.
  13. Vorrichtung nach Anspruch 1, wobei der Controller in einen anderen Chip eingebettet ist.
  14. Vorrichtung nach Anspruch 1, wobei der Controller eine Management-Engine ist.
  15. Verfahren, das Folgendes umfasst: Steuern eines Eingabegerätes; Empfangen von Eingabeinformationen von dem Eingabegerät; Ausschließen eines Host-Prozessors von der Steuerung des Eingabegerätes; und Absichern der von dem Eingabegerät empfangenen Eingabeinformationen in einer solchen Weise, dass die Eingabeinformationen nicht durch den Host-Prozessor oder durch irgend eine auf dem Host-Prozessor laufende Software empfangen werden.
  16. Verfahren nach Anspruch 15, das des Weiteren umfasst zu gestatten, dass einige Eingabeinformationen von dem Eingabegerät durch den Host-Prozessor empfangen werden.
  17. Verfahren nach Anspruch 15, das des Weiteren umfasst zu unterbinden, dass Eingabeinformationen von dem Eingabegerät durch den Host-Prozessor empfangen werden.
  18. Verfahren nach Anspruch 15, bei dem das Eingabegerät emuliert wird, um es zu ermöglichen, dass der Controller Eingabeinformationen von dem Eingabegerät an den Host-Prozessor sendet.
  19. Verfahren nach Anspruch 15, das des Weiteren umfasst, ein oder mehrere Eingabegeräte zum Steuern zu identifizieren und die identifizierten Geräte zu steuern.
  20. Vorrichtung, die Folgendes umfasst: einen Controller, der in drei verschiedenen Modi arbeitet, und zwar: einem ersten Modus, der es ermöglicht, dass Eingabeinformationen eines Eingabegeräts direkt zu einer auf einem Host-Computer laufenden Software fließen; einem zweiten Modus, der es ermöglicht, dass Eingabeinformationen von dem Eingabegerät direkt in einen sicheren Controller fließen, und verhindert, dass die Eingabeinformationen von dem Eingabegerät zu irgend einer auf dem Host-Computer laufenden Software fließen; und einem dritten Modus, der es ermöglicht, dass Eingabeinformationen von dem Eingabegerät direkt in den sicheren Controller fließen, und es außerdem ermöglicht, dass die Eingabeinformationen von dem Eingabegerät zu der auf dem Host-Computer laufenden Software fließen.
  21. Vorrichtung nach Anspruch 20, die des Weiteren eine Routing-Logik umfasst, um dem Controller zu ermöglichen, das Eingabegerät zu steuern.
  22. Vorrichtung nach Anspruch 20, wobei das Eingabegerät ein Universal Serial Bus-Eingabegerät ist.
  23. Vorrichtung nach Anspruch 20, wobei der Controller dazu dient, ein oder mehrere Eingabegeräte zum Steuern zu identifizieren und die identifizierten Geräte zu steuern.
  24. Vorrichtung nach Anspruch 20, wobei der Controller die volle Kontrolle über das Eingabegerät ausüben soll.
  25. Vorrichtung nach Anspruch 20, wobei der Controller in einem Chipsatz enthalten ist.
  26. Vorrichtung nach Anspruch 20, wobei der Controller ein diskreter Controller ist.
  27. Vorrichtung nach Anspruch 20, wobei der Controller in einen anderen Chip eingebettet ist.
  28. Verfahren, das Folgendes umfasst: es in einem ersten Modus zu gestatten, dass Eingabeinformationen eines Eingabegerät direkt zu einer auf einem Host-Computer laufenden Software fließen; es in einem zweiten Modus zu gestatten, dass Eingabeinformationen von dem Eingabegerät direkt in einen sicheren Controller fließen, und zu verhindern, dass die Eingabeinformationen von dem Eingabegerät zu irgend einer auf dem Host-Computer laufenden Software fließen; und es in einem dritten Modus zu gestatten, dass Eingabeinformationen von dem Eingabegerät direkt in den sicheren Controller fließen, und außerdem zu gestatten, dass die Eingabeinformationen von dem Eingabegerät zu der auf dem Host-Computer laufenden Software fließen.
  29. Verfahren nach Anspruch 28, wobei das Eingabegerät ein Universal Serial Bus-Eingabegerät ist.
  30. Verfahren nach Anspruch 28, das des Weiteren umfasst: Identifizieren eines oder mehrerer Eingabegeräte zum Steuern; und Steuern der identifizierten Geräte.
  31. Verfahren nach Anspruch 28, das des Weiteren das komplette Steuern des Eingabegerätes umfasst.
DE112008003528T 2007-12-31 2008-11-26 Abgesicherte Eingaben für eine Management-Engine Ceased DE112008003528T5 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/967,948 US20090172823A1 (en) 2007-12-31 2007-12-31 Management engine secured input
US11/967,948 2007-12-31
PCT/US2008/085034 WO2009088577A1 (en) 2007-12-31 2008-11-26 Management engine secured input

Publications (1)

Publication Number Publication Date
DE112008003528T5 true DE112008003528T5 (de) 2011-02-24

Family

ID=40800411

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112008003528T Ceased DE112008003528T5 (de) 2007-12-31 2008-11-26 Abgesicherte Eingaben für eine Management-Engine

Country Status (5)

Country Link
US (1) US20090172823A1 (de)
CN (1) CN101911085A (de)
DE (1) DE112008003528T5 (de)
GB (1) GB2468985A (de)
WO (1) WO2009088577A1 (de)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8954747B2 (en) * 2011-07-01 2015-02-10 Intel Corporation Protecting keystrokes received from a keyboard in a platform containing embedded controllers
US8893287B2 (en) * 2012-03-12 2014-11-18 Microsoft Corporation Monitoring and managing user privacy levels
US9495011B1 (en) * 2013-12-18 2016-11-15 Amazon Technologies, Inc. Device-stylus haptic communication system
US9342687B2 (en) * 2014-08-07 2016-05-17 International Business Machines Corporation Detecting synthetic keystrokes
US10289846B2 (en) 2015-04-17 2019-05-14 Easy Solutions Enterprises Corp. Systems and methods for detecting and addressing remote access malware

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5946469A (en) * 1995-11-15 1999-08-31 Dell Computer Corporation Computer system having a controller which emulates a peripheral device during initialization
US7779062B2 (en) * 2004-08-18 2010-08-17 Ripple Effects Holdings Limited System for preventing keystroke logging software from accessing or identifying keystrokes
US6738834B1 (en) * 2002-07-15 2004-05-18 Cypress Microsystems System for reconfiguring a peripheral device using configuration residing on the peripheral device by electronically simulating a physical disconnection and reconnection to a host device
US20040073809A1 (en) * 2002-10-10 2004-04-15 Wing Keong Bernard Ignatius Ng System and method for securing a user verification on a network using cursor control
US7559083B2 (en) * 2003-01-14 2009-07-07 Microsoft Corporation Method and apparatus for generating secured attention sequence
US20060036731A1 (en) * 2004-08-16 2006-02-16 Mossman Associates Novel method and system of keyless data entry and navigation in an online user interface console for preventing unauthorized data capture by stealth key logging spy programs
US8250151B2 (en) * 2005-10-12 2012-08-21 Bloomberg Finance L.P. System and method for providing secure data transmission
JP2007323313A (ja) * 2006-05-31 2007-12-13 Toshiba Corp 情報処理装置および制御方法
US20090172396A1 (en) * 2007-12-31 2009-07-02 Intel Corporation Secure input
US20090172410A1 (en) * 2007-12-31 2009-07-02 Intel Corporation Personal vault
US20090172388A1 (en) * 2007-12-31 2009-07-02 Intel Corporation Personal guard
US20090172389A1 (en) * 2007-12-31 2009-07-02 Intel Corporation Secure client/server transactions

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
www.bank.intel.com
www.buyalot.com

Also Published As

Publication number Publication date
GB201010826D0 (en) 2010-08-11
CN101911085A (zh) 2010-12-08
US20090172823A1 (en) 2009-07-02
GB2468985A (en) 2010-09-29
WO2009088577A1 (en) 2009-07-16

Similar Documents

Publication Publication Date Title
CN104094270B (zh) 针对计算设备保护用户证书
EP3788760B1 (de) Systeme und verfahren zum hinzufügen von wasserzeichen unter verwendung eines eingebetteten browsers
EP2533172B2 (de) Gesicherter Zugriff auf Daten in einem Gerät
DE60106569T2 (de) vERFAHREN ZUR DURCHFÜHRUNG EINER ONLINE FINANZTRANSAKTION DURCH EINEN BENUTZER
US8065724B2 (en) Computer method and apparatus for authenticating unattended machines
US8266708B2 (en) Privacy protection system
US9069869B1 (en) Storing on a client device data provided by a user to an online application
EP2764464B1 (de) Mikroprozessorsystem mit gesicherter laufzeitumgebung
JP2003508838A (ja) 電子取引を行うための方法および装置
AU2006311596A1 (en) Device providing a secure work environment and utilizing a virtual interface
DE102011082101A1 (de) Verfahren zur Erzeugung eines Soft-Tokens, Computerprogrammprodukt und Dienst-Computersystem
WO2007103594A2 (en) System and method for providing single sign-on functionality
DE112008003528T5 (de) Abgesicherte Eingaben für eine Management-Engine
KR20140100440A (ko) 입력 데이터의 로깅을 방지하기 위한 컴퓨터 네트워크 시스템
EP2458569B1 (de) Datenträgervorrichtung mit eigenem Prozessor zur Ausführung eines Netzzugriffprogramms
DE10110316A1 (de) Sichere Passworteingabe
DE112008003508T5 (de) Personal Guard
US20090172410A1 (en) Personal vault
Chhibber et al. Security analysis of cloud computing
JP6786682B2 (ja) インターネットバンキングシステム及び不正アクセス遮断用中継装置
JP7118044B2 (ja) インターネットシステム及びインターネットシステムが実行する方法
JP2008226201A (ja) 仲介システム、プログラム、及び記憶媒体
EP2883182B1 (de) Vorrichtungsanordnung zur durchführung oder freigabe eines elektronischen diensts und verfahren zum sicheren eingeben von autorisierungsdaten
EP2096570A1 (de) Mobiles Computersystem zum Ausführen von sicheren Transaktionen über ein ungeschütztes Kommunikationsnetzwerk
Hammond Banking on a secure Internet

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
R016 Response to examination communication
R082 Change of representative

Representative=s name: MAUCHER JENKINS, DE

Representative=s name: MAUCHER JENKINS PATENTANWAELTE & RECHTSANWAELT, DE

R002 Refusal decision in examination/registration proceedings
R003 Refusal decision now final