DE112008003630T5 - Shared secret, das zwischen Tastatur und Anwendung verwendet wird - Google Patents

Shared secret, das zwischen Tastatur und Anwendung verwendet wird Download PDF

Info

Publication number
DE112008003630T5
DE112008003630T5 DE112008003630T DE112008003630T DE112008003630T5 DE 112008003630 T5 DE112008003630 T5 DE 112008003630T5 DE 112008003630 T DE112008003630 T DE 112008003630T DE 112008003630 T DE112008003630 T DE 112008003630T DE 112008003630 T5 DE112008003630 T5 DE 112008003630T5
Authority
DE
Germany
Prior art keywords
keyboard
shared secret
application
user
character code
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
DE112008003630T
Other languages
English (en)
Inventor
Wael M. Houston Ibrahim
Liqun Chen
Manuel Houston Novoa
Ligy Houston Kurian
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.)
Hewlett Packard Development Co LP
Original Assignee
Hewlett Packard Development Co LP
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 Hewlett Packard Development Co LP filed Critical Hewlett Packard Development Co LP
Publication of DE112008003630T5 publication Critical patent/DE112008003630T5/de
Ceased legal-status Critical Current

Links

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
    • 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
    • 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

Abstract

Ein System, das Folgendes umfasst:
einen Prozessor, der ein Betriebssystem und eine Anwendung ausführt; und
eine mit dem Prozessor gekoppelte Tastatur;
wobei die Tastatur und die Anwendung ein Shared Secret gemeinsam nutzen, das dazu verwendet wird, Tastaturdaten, die von der Tastatur an die Anwendung geliefert werden, zu codieren, wobei das Shared Secret dem Betriebssystem nicht bekannt ist und für dasselbe nicht zugänglich ist.

Description

  • HINTERGRUND
  • Tastenaufzeichner (engl.: key loggers) sind Produkte, die ohne das Wissen oder die Erlaubnis eines Nutzers die Tasten erfassen, die der Nutzer auf einer Tastatur drückt. Tastenaufzeichner können beispielsweise dazu verwendet werden, Passwörter, die von einem Nutzer getippt werden, wenn sich der Nutzer in einen Dienst oder in ein System einloggt, zu stehlen. Das Aufkommen von Tastenaufzeichnungsprodukten führte zu einem Erfordernis von Anti-Tastenaufzeichnungsprodukten, die versuchen, die Funktionsfähigkeit von Tastenaufzeichnern zunichte zu machen.
  • KURZE BESCHREIBUNG DER ZEICHNUNGEN
  • Zum Zweck einer ausführlichen Beschreibung von exemplarischen Ausführungsbeispielen der Erfindung wird nun auf die beiliegenden Zeichnungen Bezug genommen, bei denen:
  • 1 ein Systemdiagramm gemäß verschiedenen Ausführungsbeispielen zeigt;
  • 2 ein Ausführungsbeispiel einer Datenstruktur zeigt, die durch ein Shared Secret (gemeinsam genutztes Geheimnis) bevölkert bzw. bestückt wird;
  • 3 ein Beispiel eines bestimmten Shared Secret zeigt, das die Datenstruktur der 2 bevölkert;
  • 4 ein Verfahren zum Erzeugen des Shared Secret gemäß verschiedenen Ausführungsbeispielen zeigt;
  • 5 ein weiteres Ausführungsbeispiel einer Datenstruktur zeigt, die durch ein Shared Secret bevölkert wird; und
  • 6 ein Verfahren zum Verwenden des Shared Secret, um einen sicheren Kommunikationsfluss von einer Tastatur zu einer Anwendung gemäß verschiedenen Ausführungsbeispielen durchzuführen, zeigt.
  • BEZEICHNUNG UND NOMENKLATUR
  • Bestimmte Begriffe werden in der gesamten folgenden Beschreibung und in den Patentansprüchen mit Bezug auf bestimmte Systemkomponenten verwendet. Wie Fachleuten einleuchten wird, können Computerfirmen eine Komponente mit verschiedenen Namen bezeichnen. Das vorliegende Dokument beabsichtigt nicht, zwischen Komponenten zu unterscheiden, die sich bezüglich ihres Namens, jedoch nicht bezüglich ihrer Funktion unterscheiden. In der folgenden Erörterung und in den Patentansprüchen werden die Begriffe „aufweisen” und „umfassen” auf offene Weise verwendet und sollten somit in der Bedeutung von „weisen ... auf, sind aber nicht beschränkt auf ...” interpretiert werden. Auch soll der Begriff „koppeln” oder „koppelt” entweder eine indirekte, direkte, optische oder drahtlose elektrische Verbindung bedeuten. Wenn also eine erste Vorrichtung mit einer zweiten Vorrichtung gekoppelt ist, kann diese Verbindung durch eine direkte elektrische Verbindung, durch eine indirekte elektrische Verbindung über andere Vorrichtungen und Verbindungen, durch eine optische elektrische Verbindung oder durch eine drahtlose elektrische Verbindung erfolgen. Ferner bezieht sich der Begriff „System” auf eine Sammlung von zwei oder mehr Hardware- und/oder Softwarekomponenten und kann dahin gehend verwendet werden, sich auf eine elektronische Vorrichtung wie z. B. einen Computer, einen Teil eines Computers, eine Kombination von Computer usw. zu beziehen. Ferner umfasst der Begriff „Software” jeglichen ausführbaren Code, der in der Lage ist, auf einem Prozessor betrieben zu werden, ungeachtet der zum Speichern der Software verwendeten Medien. Somit ist in der Definition von Software ein Code enthalten, der in einem nicht-flüchtigen Speicher gespeichert ist und manchmal als „eingebettete Firmware” bezeichnet wird.
  • AUSFÜHRLICHE BESCHREIBUNG
  • 1 zeigt ein System 10 gemäß verschiedenen Ausführungsbeispielen. Wie gezeigt ist, umfasst das System 10 einen Prozessor 12, der mit einer Speichereinrichtung 14, einem Display 15, einer Shared-Secret-Logik 20 und einer Tastatur 30 sowie einer Zeigevorrichtung 31 (z. B. einer Maus) gekoppelt ist. Die Zeigevorrichtung 31 kann wie gezeigt über die Tastatur 30 mit dem Prozessor 12 gekoppelt sein. Über die Tastatur tätigt ein Nutzer eine Eingabe in das System 10. Die Speichereinrichtung umfasst eine flüchtige Speichereinrichtung (z. B. einen Direktzugriffsspeicher), eine nicht-flüchtige Speichereinrichtung (z. B. Festplattenlaufwerk, Compakt-Disk-Nur-Lese-Speicher usw.) oder Kombinationen derselben. Die Speichereinrichtung umfasst ein Betriebssystem 16 und eine oder mehrere Anwendungen 18, die unter der Steuerung des Betriebssystems laufen. Das Betriebssystem 16 und die Anwendung(en) 18 umfassen einen Code, der durch den Prozessor 12 ausführbar ist. Eine Anwendung 18 kann eine beliebige Art von Anwendung umfassen, beispielsweise eine Textverarbeitungsanwendung, eine Tabellenkalkulationsanwendung, einen Internetbrowser usw.
  • Die Tastatur umfasst eine Sicherer-Modus-Logik 32, eine oder mehrere Tastaturtasten 34 (z. B. eine 101-Taste-Tastatur), eine Sicherer-Modus-Aktivierungssteuerung 36 und eine visuelle Anzeigeeinrichtung 38. Die Sicherer-Modus-Aktivierungssteuerung 36 umfasst bei manchen Ausführungsbeispielen einen Knopf oder eine andere Art Schalter. Die Anzeigeeinrichtung 38 umfasst eine Licht emittierende Diode (LED – light emitting diode) oder eine andere Art visueller Anzeigeeinrichtung (z. B. einen „Sprite” (Kobold) oder eine andere Graphik, die einen Graphikbildpuffer überlagert und durch das Betriebssystem 16 gesteuert wird), um anzuzeigen, ob sich die Tastatur in dem nicht-sicheren Modus oder dem sicheren Modus befindet, wie nachstehend erläutert wird.
  • Gemäß verschiedenen Ausführungsbeispielen ist ein Nutzer des Systems 10 in der Lage, die Tastatur 30 in einem nicht-sicheren Modus oder in einem sicheren Modus zu betreiben. Die hierin beschriebene Technologie bezieht sich auf jegliche Art von Nutzereingabevorrichtung (Tastatur, Maus, Rollkugel usw.), die durch einen Nutzer in Verbindung mit einer Anwendung verwendet werden kann. Ungeachtet des Modus werden für jede Nutzeraktivierung einer Taste 34 ein oder mehrere Zeichencodes durch die Tastatur erzeugt und von derselben an den Prozessor 12 gesendet. Ein gestrichelter Pfeil 25 zeigt an, dass die Eingabe von der Tastatur logisch an die Anwendung 18 geliefert wird, die „im Fokus” ist, wenn der Nutzer die Tastatur 30 bedient. In dem nicht-sicheren Modus wird für jede Nutzeraktivierung einer Taste 34 auf der Tastatur ein Zeichencode, der dieser Taste entspricht, an die Anwendung 18 gesendet. Der nicht-sichere Modus, die nicht-sichere Tastatur und nicht-sichere Zeichencodes sind allgemein allen Anwendungen 18 und dem Betriebssystem 16 bekannt und erfüllen zumindest bei manchen Ausführungsbeispielen den Abtastcode- und Seitentabellenlokalisierungsstandard. Ein Zeichencode identifiziert die Taste, die ein Nutzer auf der Tastatur drückte.
  • In dem sicheren Modus, der aktiviert werden kann, indem ein Nutzer die Sicherer-Modus-Aktivierungssteuerung 36 aktiviert oder indem die Anwendung 18 eine sichere Sitzung anfordert, bevor sie eine Eingabe akzeptiert, wird für jede Nutzeraktivierung einer Taste 34 ein Paket von Bits, das nicht mit dem Zeichencode übereinstimmt, der der durch den Nutzer aktivierten Taste zugeordnet ist, an die „im Fokus befindliche” Anwendung 18 geliefert, wobei es durch verschiedene Betriebssystemschichten (OS-Schichten, OS = operating system, Betriebssystem) gelangt. Ein derartiges Bitpaket wird von der Anwendung 18, die das Paket empfängt, verstanden, wird jedoch nicht von dem Betriebssystem 16 verstanden. Auf diese Weise wird zwischen der Tastatur 30 und einer Anwendung 18 ein sicherer Kommunikationskanal eingerichtet.
  • Der sichere Kommunikationskanal zwischen Tastatur und Anwendung verwendet ein Shared Secret, das an die Sicherer-Modus-Logik 32 der Tastatur sowie an die Anwendung 18 geliefert wird. Dieser Shared-Secret-Schlüssel wird durch die Shared-Secret-Logik 20 erzeugt, nachdem ein Nutzer die Sicherer-Modus-Aktivierungssteuerung 36 auf der Tastatur 30 aktiviert, oder er wird erzeugt, indem die Anwendung einen sicheren Kommunikationskanal mit der Tastatur initiiert, beispielsweise wenn die Anwendung erfasst, dass ein „Eingabekästchen”-Dateneintrag auf dem Display als zu schützend bezeichnet wurde. Manche Eingabekästchen können einen Nutzer auffordern, ein Passwort oder sonstige Eingabeformen privater Informationen einzugeben, die Informationen wie z. B. Kreditkartennummern abfragen können. Bei manchen Ausführungsbeispielen umfasst der erzeugte Shared-Secret-Schlüssel eine Zufallszahl (z. B. eine Zahl, die anhand eines analogen „weißen” Rauschens oder anderer Techniken erzeugt wird), die durch die Tastatur 30 und die Anwendung 18 benutzt wird, um eine Datenstruktur 40, z. B. die in 2 gezeigte, zu bevölkern, um einen sicheren Kommunikationskanal zu implementieren.
  • 2 zeigt ein exemplarisches Format einer Datenstruktur 40, die durch die Sicherer-Modus-Logik 32 der Tastatur 30 sowie durch die Anwendung 18 mit dem Shared-Secret-Schlüssel bestückt wird. Die veranschaulichende Datenstruktur 40 umfasst drei Informationszeilen. Eine erste Zeile 42 umfasst Indexwerte. Eine zweite Zeile 44 umfasst Längenwerte. Eine dritte Zeile 46 umfasst Verzögerungswerte. Jede Spalte 50, 52, 54 und 56 umfasst einen Indexwert 42, einen Längenwert 44 und einen Verzögerungswert 46. Jede Spalte von Werten wird dazu verwendet, ein Paket von Zeichencodes zu definieren, das die Tastatur 30 jedes Mal dann erzeugt, wenn ein Nutzer eine Tastaturtaste 34 aktiviert (z. B. drückt). 2 umfasst vier Spalten 50, 52, 54 und 56, um vier Pakete von Zeichencodes zu definieren, bei anderen Ausführungsbeispielen kann jedoch auch eine andere Anzahl von Spalten vorgesehen sein.
  • 3 veranschaulicht ein Shared Secret, das dazu verwendet wird, eine Datenstruktur 40 zu besetzen. Sowohl die Tastatur 30 als auch die Anwendung 18 weist eine derartige Datenstruktur auf. Die Shared-Secret-Logik 20 erzeugt das Shared Secret und liefert das Shared Secret sowohl an die Tastatur 30 als auch an die Anwendung 18. Sowohl die Shared-Secret-Logik 32 der Tastatur 30 als auch die Anwendung 18 bevölkert seine eigene Datenstruktur 40 unter Verwendung des Shared Secret, wie in 3 veranschaulicht ist. Bei dem veranschaulichenden Ausführungsbeispiel der 3 heißt das Shared Secret „235232012301203141030121”. Der erste Wert „2” aus dem Shared Secret wird dazu verwendet, die erste Zelle in der Datenstruktur zu besetzen. Dieser Wert entspricht einem Indexwert in der ersten Spalte. Der nächste Wert „3” aus dem Shared Secret wird dazu verwendet, die zweite Zelle in der Datenstruktur zu besetzen. Dieser Wert entspricht einem Indexwert in der zweiten Spalte. Dieser Vorgang wiederholt sich, bis alle Indexwerte der Datenstruktur 40 eine vollständige Zuteilung von Indexwerten umfassen. Der nächste Wert „3” aus dem Shared Secret wird dazu verwendet, die erste Zelle in der zweiten Zeile der Datenstruktur zu besetzen. Diese Zelle umfasst einen Längenwert. Nachfolgende Shared-Secret-Werte werden dazu verwendet, die verbleibenden Einträge in der Datenstruktur zu besetzen, wie in dem veranschaulichenden Beispiel der 3 gezeigt ist.
  • Gemäß verschiedenen Ausführungsbeispielen erzeugt die Sicherer-Modus-Logik 32 der Tastatur jedes Mal dann, wenn ein Nutzer eine Tastaturtaste 34 aktiviert, ein Paket, das mehrere Zeichencodes aufweist. Jedes Paket umfasst eine Mehrzahl von Zeichencodes. Einer der Zeichencodes in dem Paket ist der durch einen Nutzer aktivierten jeweiligen Taste 34 zugeordnet (z. B. ist er der Zeichencode der nutzeraktivierten Taste 34). Die anderen Zeichencodes in dem Paket können einer durch einen Nutzer aktivierten bestimmten Taste 34 zugeordnet sein, müssen aber nicht, und werden (z. B. zufällig) durch die Sicherer-Modus-Logik 32 der Tastatur 30 erzeugt. Lediglich die Anwendung 18, nicht das Betriebssystem 16, kann bestimmen, welcher der Zeichencodes in dem Paket extrahiert werden soll/als der Zeichencode verwendet werden soll, der der durch den Nutzer gedrückten Tastaturtaste 34 zugeordnet ist (hierin als der „richtige” Zeichencode bezeichnet). Diese Technik des „Key Flooding” (Tastenfluten) beinhaltet somit ein Senden des richtigen Zeichencodes (desjenigen, der der durch den Nutzer gedrückten Taste zugeordnet ist) unter einem oder mehreren anderen, möglicherweise zufällig erzeugten Zeichencodes (oder Codes, die ausgewählt sind, um einer Entropieanalyse standzuhalten) in einer seriellen Abfolge von Zeichencodes. Wenn die Logik, die das Paket von Zeichencodes empfangt, nicht weiß, welches Element der Abfolge den richtigen Zeichencode enthält, ist die empfangende Logik nicht in der Lage, die durch die Tastatur 30 bereitgestellten Daten präzise zu interpretieren.
  • Unter Bezugnahme auf das veranschaulichende Beispiel der 3 ist das erste Paket von Zeichencodes, das durch die Tastatur 30 erzeugt wird, einem Indexwert 2, einem Längen wert 3 und einem Verzögerungswert, der eine Verzögerung von 1 bis 20 Millisekunden (ms) angibt, zugeordnet. Dies bedeutet, dass der zweite Zeichencode in dem Paket der richtige Zeichencode ist, dass die Länge des Pakets 3 Zeichencodes beträgt und dass eine zeitliche Verzögerung zwischen jedem der drei erzeugten Schriftzeichen zwischen 1 und 20 Millisekunden beträgt. Die anderen zwei Zeichencodes können beliebige Zeichencodes sein, sind bei verschiedenen Ausführungsbeispielen jedoch nicht beide derselbe Code wie der richtige Code.
  • Das nächste Mal, wenn ein Nutzer eine Tastaturtaste 34 drückt, erzeugt die Tastatur 30 ein weiteres Paket von Zeichencodes gemäß einem Indexwert 3, einem Längenwert 20 und einem Verzögerungswert, der eine Verzögerung von 3 bis 14 ms angibt. Dies bedeutet, dass der dritte Zeichencode in diesem Paket der richtige Zeichencode ist, dass die Länge des Pakets 20 Zeichencodes beträgt und dass die zeitliche Verzögerung zwischen jedem der 20 erzeugten Schriftzeichen ein zufälliger oder sonstiger Wert zwischen 3 und 14 ms ist. Ein drittes und ein viertes Paket werden auf dieselbe Weise erzeugt.
  • Nachdem das vierte Paket, das dem vierten Satz von Index-, Längen- und Verzögerungswerten (2, 30 Zeichencodes und 1–21 ms) entspricht, erzeugt wurde, kann die Datenstruktur 40 erneut zur nachfolgenden Aktivierung der Tastaturtasten 34 verwendet werden. Das heißt, dass die Datenstruktur 40 wiederholt dazu verwendet werden kann, Pakete zu erzeugen. Bei anderen Ausführungsbeispielen erzeugt die Shared-Secret-Logik 20, nachdem eine Datenstruktur 40 erschöpft ist (d. h. nachdem jeder ihrer Index-, Längen- und Verzögerungswerte dazu verwendet wurde, Zeichencodepakete zu erzeugen), eine neues Shared Secret, das dann dazu verwendet wird, die Datenstrukturen 40 der Tastatur 30 und der Anwendung 18 zu überschreiben und neu zu besetzen. Als solches wird das Shared Secret als Form einer „Einmal-Verschlüsselung” (OTP – one time pad) verwendet.
  • Jedes Paket von Zeichencodes wird durch die Anwendung 18 empfangen. Die Anwendung weist eine identische Kopie der Datenstruktur 40 auf, die seitens der Sicherer-Modus-Logik 32 der Tastatur verwendet wurde, um das Paket zu erzeugen. Die Datenstruktur 40 in der durch die Anwendung verwendeten Speichereinrichtung 14 wurde unter Verwendung desselben Shared Secret auf dieselbe Weise besetzt. Die Anwendung 18 verwendet ihre Kopie der Datenstruktur, um den richtigen Zeichencode zu extrahieren. Die Indexwerte zeigen auf den Zeichencode in jedem Paket, der der richtige Code ist (d. h. der Code, der der durch den Nutzer gedrückten Taste zugeordnet ist. Der Längenwert wird durch die Anwendung verwendet, um das Ende jedes Pakets zu bestimmen (z. B. der Längenwert minus den Indexwert stellt die Anzahl von Zeichencodes dar, die im Anschluss an den richtigen Zeichencode in dem Paket verbleiben). Die zeitliche Verzögerung (oder der Bereich von Zeitverzögerungswerten) existiert, um Zeitgebungsangriffen eines Tastenaufzeichners standzuhalten.
  • 4 veranschaulicht ein Verfahren 100 zum Erzeugen des Shared Secret gemäß verschiedenen Ausführungsbeispielen. Die gezeigten Handlungen können in der gezeigten Zeilenfolge oder in einer anderen Zeilenfolge durchgeführt werden. Ferner können manche der Handlungen gleichzeitig (z. B. parallel) durchgeführt werden.
  • Wie gezeigt ist, umfasst das Verfahren 100 einen Nutzer, der eine Anwendung betreibt (102). Wie oben erwähnt wurde, kann die Anwendung eine beliebige Anwendung wie z. B. ein Internetbrowser, ein Textverarbeitungsprogramm usw. sein. Ein Betreiben der Anwendung umfasst beispielsweise ein „Doppelklicken” auf ein Bildsymbol, das die Anwendung auf dem Display 15 darstellt. Bei 104 aktiviert der Nutzer die Sicherer-Modus-Eingabesteuerung 36 auf der Tastatur 30, um einen sicheren Tastatureingabekanal von der Tastatur 30 zu der Anwendung 18 zu implementieren. Alternativ dazu kann die Anwendung 18 den sicheren Tastatureingabekanal initiieren. Die Sicherer-Modus-Logik 32 der Tastatur erzeugt bei 106 eine Systemverwaltungsunterbrechung (SMI – system management interrupt), um die Shared-Secret-Logik 20 zu veranlassen, ein Shared Secret zu erzeugen. Eine Charakteristik eines SMI-Steuerungsprogrammcodes besteht darin, dass ein derartiger Code außerhalb der Steuerung und der Einbeziehung des Betriebssystems 16 abläuft. Während der Ausführung der SMI wird die Ausführung des Betriebssystems 16 ausgesetzt. Auf diese Weise kann die Shared-Secret-Logik 20 ein Shared Secret erzeugen, ohne dass das Betriebssystem 16 das Shared Secret besitzt oder Zugriff auf dasselbe hat.
  • Bei 108 spricht die Shared-Secret-Logik 20 auf die SMI an, indem sie ein Shared Secret erzeugt. Bei manchen Ausführungsbeispielen umfasst die Shared-Secret-Logik 20 ein Modul mit vertrauter Plattform (TMP – Trusted Platform Module), eine sichere digitale Karte (SD-Karte, SD = secure digital) oder einen anderen Mechanismus zum Erzeugen eines Shared Secret, das lediglich an die Sicherer-Modus-Logik 32 der Tastatur und die Anwendung 18 geliefert wird. Bei 110 sendet die Shared-Secret-Logik 20 das Shared Secret an die Tastatur 30. Bei 112 wird die SMI freigegeben, und das Betriebssystem 16 nimmt seine Ausführung wieder auf.
  • Bei 114 zeigt die Tastatur 30 dem Nutzer gegenüber an, dass die Tastatur 30 nun bezüglich der Anwendung 18, die im Fokus ist, in einem sicheren Betriebsmodus ist. Die Anzeige umfasst eine visuelle Rückmeldung über die Anzeigeeinrichtung 30 (z. B. eine LED). Die Tastatur zeigt der Anwendung 18 gegenüber an (z. B. sendet ein Signal an diese), dass die Tastatur 30 ein Shared Secret aufweist und in ihrem sicheren Modus ist (116). Nach einer Bestimmung, dass die Tastatur 30 in einem sicheren Modus ist, fordert die Anwendung 18 bei 118 den Shared Key (gemeinsam genutzten Schlüssel) von der Shared-Secret-Logik 20 an. Bei 120 liefert die Shared-Secret-Logik 20 das Shared Secret an die Anwendung, möglicherweise beispielsweise eine sichere Transportsitzung zwischen der Anwendung und einem Modul mit vertrauter Plattform (TPM) durch die Verwendung eines TCG-Software-Stapels (TSS – TCG Software Stack). Bei derartigen Ausführungsbeispielen wird der TSS als prozessintegrierter Server geladen, der in dem Adressraum der Anwendung vorliegt. Der TSS liefert Mechanismen zum Erzeugen einer sicheren Transportsitzung zwischen einer Anwendung und einem TPM. Andere Techniken können verwendet werden, um das Shared Secret in dem Adressraum der Anwendung weiter zu vernebeln. Wenn erst einmal sowohl der Tastatur 30 als auch der Anwendung 18 das Shared Secret bereitgestellt wurde, verwenden die Tastatur (d. h. die Sicherer-Modus-Logik 32) und die Anwendung 18 das Shared Secret, um Tastaturdaten in einem sicheren Kommunikationskanal von der Tastatur 30 an die Anwendung zu liefern (122).
  • Statt den Zeichencode, der der durch den Nutzer aktivierten Tastaturtaste zugeordnet ist, unter einem oder mehreren zusätzlichen Zeichencodes einzubetten, wird der der b'nutzeraktivierten Tastaturtaste zugeordnete Zeichencode bei manchen Ausführungsbeispielen modifiziert. Gemäß manchen derartigen Ausführungsbeispielen umfasst die Modifizierung ein Ändern des Zeichencodes gemäß dem Shared Secret. Beispielsweise wird der Zeichencode mit dem gesamten oder einem Teil des Shared Secret exklusiv ODERiert (d. h. die logische Exklusiv-ODER-Verknüpfung). Der resultierende modifizierte Zeichencode kann in seine unveränderte Form zurück gewandelt werden, indem die Anwendung 18 den von der Tastatur 30 empfangenen modifizierten Zeichencode mit demselben Shared Secret oder Unterabschnitt desselben, das bzw. der durch die Tastatur 30 verwendet wurde, um den Zeichencode überhaupt erst zu modifizieren, exklusiv ODERiert.
  • 5 veranschaulicht ein Ausführungsbeispiel einer Datenstruktur 60, die ähnlich der Datenstruktur 40 der 2 und 3 ist. Die Datenstruktur 60 umfasst eine zusätzliche Zeile von Daten 62. Diese Daten, mit denen die Datenstruktur von dem Shared Secret bevölkert ist, umfassen Werte, die bei der Exklusiv-ODER-Verknüpfung, wie sie oben beschrieben wurde, verwendet werden. Das heißt, die Tastatur 30 erzeugt ein erstes Paket, bei dem der richtige Zeichencode der zweite Code in dem Paket ist, das drei Zeichencodes aufweist. Die zeitliche Verzögerung zwischen den erzeugten Tastencodes liegt im Bereich zwischen 1 und 20 ms. Der richtige Code wird mit dem Wert „12” exklusiv ODERiert, und der auf diese Weise modifizierte resultierende Zeichencode wird als zweites von drei Elementen in dem Paket in das Paket platziert. Nachdem sie dieses Paket empfangen hat, extrahiert die Anwendung 18 das zweite Element und berechnet die Exklusiv-ODER-Verknüpfung des extrahierten Elements mit demselben Wert („12”), um den richtigen Zeichencode wiederzugewinnen.
  • Bei manchen Ausführungsbeispielen werden die von der Tastatur 30 an die Anwendung 18 gesendeten Zeichencodes unter Verwendung des gesamten oder eines Teils des Shared Secret als Verschlüsselungs-/Entschlüsselungsschlüssel verschlüsselt. Das Betriebssystem und andere Anwendungen, die unter dem Betriebssystem ablaufen, haben keinen Zugriff auf das Shared Secret und sind somit nicht in der Lage, die verschlüsselten Zeichencodes richtig zu entschlüsseln. Die verschlüsselten Zeichencodes können gesendet werden, ohne mit anderen Zeichencodes in ein Paket eingebettet zu werden, oder sie können nach Wunsch in derartige Pakete eingebettet werden.
  • Bei manchen Ausführungsbeispielen weist jedes durch die Tastatur 30 erzeugte Paket dieselbe Länge auf. Die Position (der Index) des Zeichencodes in dem Paket kann von Paket zu Paket variieren. Das heißt, alle Pakete können eine Länge von beispielsweise 10 aufweisen. Die Länge kann in der Datenstruktur 40, 60 vorgesehen sein oder kann vorprogrammiert sein und durch die Sicherer-Modus-Logik 32 der Tastatur und die Anwendung 18 implizit verstanden werden. Bei einem Paket kann der richtige Zeichencode das zweite Element sein, während bei einem anderen Paket der richtige Zeichencode das sechste Element sein kann.
  • Bei verschiedenen Ausführungsbeispielen kann die festgelegte Position in dem Paket für den richtigen Zeichencode feststehend sein, die Länge jedes Pakets kann jedoch variieren. Beispielsweise kann der richtige Zeichencode in jedem von mehreren Paketen, deren Länge von 3 bis zu einer Zahl, die größer ist als 3, variiert, in der dritten Position platziert sein. Bei derartigen Ausführungsbeispielen kann der Indexwert (bei diesem Beispiel 3) in den Datenstrukturen 40, 60 vorgesehen sein oder kann durch die Tastatur 30 und die Anwendung 18 implizit verstanden werden (z. B. eine Konfigurationspolitik).
  • Als solches weisen die Pakete zumindest zwei Charakteristika auf, die anhand der Shared Secrets und der Datenstrukturen 40, 60, die den sicheren Kommunikationskanal zwischen der Tastatur 30 und der Anwendung 18 implementieren helfen, individuell programmiert werden können. Eine Charakteristik ist die Position in einem Paket (Index), an der sich der richtige Code befindet, und die andere Charakteristik ist die Länge jedes Pakets. Eine oder beide Charakteristika können durch das Shared Secret auf einer Paket-um-Paket-Basis festgelegt werden.
  • Wie hierin beschrieben ist, aktiviert der Nutzer die Sicherer-Modus-Aktivierungssteuerung 36, um einen sicheren Kommunikationskanal zwischen der Tastatur 30 und der Anwendung 18 einzurichten. Der Nutzer kann selektiv einen sicheren Kommunikationskanal zwischen der Tastatur und jeder von mehreren Anwendungen 18 einrichten. Bei verschiedenen Ausführungsbeispielen verwendet jeder derartige sichere Kommunikationskanal ein anderes Shared Secret. Bezüglich mancher Anwendungen 18 wird ein sicherer Kommunikationskanal eingerichtet, während für andere Anwendungen kein sicherer Kommunikationskanal eingerichtet wird. Jedes Mal, wenn ein Nutzer eine Anwendung 18 veranlasst, „im Fokus” zu sein (z. B. indem er unter Verwendung der Zeigevorrichtung 31 diese Anwendung anklickt), wird das Shared Secret, falls dieser Anwendung eines zugeordnet ist, verwendet, während der Nutzer die Tastatur 30 bedient, um mit der Anwendung zu interagieren.
  • 6 veranschaulicht ein Ausführungsbeispiel einer Handlung 122 zum Führen eines sicheren Kommunikationskanals von der Tastatur 30 zu der Anwendung 18. Bei 132 umfasst das Verfahren 122 ein Bestimmen eines Zeichencodes, der einer durch einen Nutzer aktivierten Tastaturtaste zugeordnet ist. Bei 134 umfasst das Verfahren ein Codieren des Zeichencodes mit dem Shared Secret, um ein Paket zu bilden. Das Codieren des Zeichencodes umfasst eine beliebige der hierin beschriebenen Techniken. Das Paket wird anschließend an die Anwendung 18 gesendet, mit der der Nutzer derzeit interagiert (136). Bei 138 extrahiert die Anwendung den richtigen Zeichencode aus dem Paket.
  • Die Verwendung des Shared Secret, das der Tastatur und der Anwendung, jedoch nicht dem Betriebssystem oder sonstigen Anwendungen, die unter dem Betriebssystem ablaufen, bekannt ist, trägt dazu bei, Tastenaufzeichnungssoftware abzuwehren. Eine derartige Tastenaufzeichnungssoftware hat keinen Zugriff auf das Shared Secret, das nötig ist, um die Tastaturpakete richtig zu decodieren, und ist somit nicht in der Lage, zu bestimmen, welche Tasten der Nutzer auf der Tastatur gedrückt hat.
  • Bei manchen Ausführungsbeispielen kann der Anfang jedes Pakets von Zeichencodes durch eine vorab benannte Abfolge von Bits (eine „Markierung”) identifiziert werden. Die Markierung kann durch einen Wert in dem Shared Secret festgelegt sein.
  • Die obige Erörterung soll die Prinzipien und verschiedene Ausführungsbeispiele der vorliegenden Erfindung veranschaulichen. Fachleuten werden zahlreiche Variationen und Modifikationen einleuchten, nachdem sie die obige Offenbarung vollständig nachvollzogen haben. Es ist beabsichtigt, dass die folgenden Patentansprüche dahin gehend interpretiert werden sollen, alle derartigen Variationen und Modifikationen zu umfassen.
  • ZUSAMMENFASSUNG
  • Ein System umfasst einen Prozessor, der ein Betriebssystem und eine Anwendung ausführt. Das System umfasst ferner eine mit dem Prozessor gekoppelte Tastatur. Die Tastatur und die Anwendung nutzen gemeinsam ein Shared Secret, das dazu verwendet wird, Tastaturdaten, die von der Tastatur an die Anwendung geliefert werden, zu codieren. Das Shared Secret ist dem Betriebssystem nicht bekannt und ist für dasselbe nicht zugänglich.

Claims (20)

  1. Ein System, das Folgendes umfasst: einen Prozessor, der ein Betriebssystem und eine Anwendung ausführt; und eine mit dem Prozessor gekoppelte Tastatur; wobei die Tastatur und die Anwendung ein Shared Secret gemeinsam nutzen, das dazu verwendet wird, Tastaturdaten, die von der Tastatur an die Anwendung geliefert werden, zu codieren, wobei das Shared Secret dem Betriebssystem nicht bekannt ist und für dasselbe nicht zugänglich ist.
  2. Das System gemäß Anspruch 1, das ferner eine mit dem Prozessor gekoppelte Logik umfasst, die das Shared Secret erzeugt.
  3. Das System gemäß Anspruch 1, bei dem die Logik eine Logik umfasst, die aus einer Gruppe ausgewählt ist, die aus einem TPM (Modul mit vertrauter Plattform) und einer SD-Karte (einer sicheren digitalen Karte) besteht.
  4. Das System gemäß Anspruch 1, bei dem die Tastaturdaten eine Mehrzahl von Zeichencodes für jede Aktivierung einer Tastaturtaste umfassen.
  5. Das System gemäß Anspruch 4, bei dem einer der Zeichencodes der durch einen Nutzer aktivierten Tastaturtaste entspricht.
  6. Das System gemäß Anspruch 5, bei dem das Shared Secret einen Indexwert umfasst, der angibt, welcher der Mehrzahl von Zeichencodes der durch den Nutzer aktivierten Tastaturtaste entspricht.
  7. Das System gemäß Anspruch 1, bei dem die Tastatur Codepakete erzeugt, wobei jedes Paket eine Mehrzahl von Zeichencodes enthält, wobei ein Paket für jede Akti vierung einer Tastaturtaste erzeugt wird und wobei jedes Paket eine Länge aufweist, die durch das Shared Secret bestimmt wird.
  8. Das System gemäß Anspruch 7, bei dem das Shared Secret für jedes Paket einen separaten Indexwert umfasst, wobei sich zumindest zwei der Indexwerte voneinander unterscheiden.
  9. Das System gemäß Anspruch 7, bei dem das Shared Secret einen Wert umfasst, der eine zeitliche Verzögerung zwischen den Paketen angibt.
  10. Das System gemäß Anspruch 1, bei dem das Shared Secret einen Wert umfasst, der mit einem Zeichencode, der einer durch einen Nutzer aktivierten Tastaturtaste zugeordnet ist, exklusiv ODERiert wird.
  11. Ein System, das Folgendes umfasst: eine Host-Logik; und eine mit der Host-Logik gekoppelte Tastatur; wobei die Tastatur und die Host-Logik ein Shared Secret gemeinsam nutzen und die Tastatur für jede auf der Tastatur gedrückte Taste mehrere Zeichencodes erzeugt und die mehreren Zeichencodes zusammen mit einem Zeichencode, der einer durch einen Nutzer gedrückten Tastaturtaste zugeordnet ist, an die Host-Logik sendet, wobei der Code gemäß dem Shared Secret identifiziert wird.
  12. Das System gemäß Anspruch 11, das ferner eine Anwendung und ein Betriebssystem umfasst, wobei das Shared Secret der Tastatur und der Anwendung, jedoch nicht an dem Betriebssystem bereitgestellt wird.
  13. Das System gemäß Anspruch 11, bei dem das Shared Secret einen Indexwert umfasst, der angibt, welcher der an die Host-Logik gesendeten Zeichencodes der durch einen Nutzer gedrückten Tastaturtaste zugeordnet ist.
  14. Das System gemäß Anspruch 11, bei dem die Tastatur jedes Mal dann, wenn ein Nutzer eine Tastaturtaste drückt, ein Paket erzeugt, das die Zeichencodes enthält, und bei dem das Shared Secret einen Längenwert umfasst, der die Länge jedes Pakets angibt.
  15. Das System gemäß Anspruch 11, bei dem das Shared Secret einen Wert umfasst, der mit dem Zeichencode, der der durch einen Nutzer gedrückten Tastaturtaste zugeordnet ist, exklusiv ODERiert wird.
  16. Das System gemäß Anspruch 11, bei dem die Tastatur unter Verwendung des Shared Secret eine Tabelle besetzt, wobei die Tabelle Einträge für zumindest entweder einen Indexwert, einen Längenwert und/oder einen Zeitverzögerungswert umfasst.
  17. Ein Verfahren, das Folgendes umfasst: Bestimmen eines Zeichencodes, der einer durch einen Nutzer aktivierten Tastaturtaste zugeordnet ist; Codieren des Zeichencodes mit einem Shared Secret, das durch eine Tastatur und eine Anwendung, nicht ein Betriebssystem, gemeinsam genutzt wird; und Senden des codierten Zeichencodes an die Anwendung.
  18. Das Verfahren gemäß Anspruch 17, bei dem das Codieren des Zeichencodes ein Einbetten des Zeichencodes in ein Paket, das zumindest einen anderen Zeichencode enthält, umfasst.
  19. Das Verfahren gemäß Anspruch 17, das ferner ein Erzeugen des Shared Secret umfasst, wobei das Shared Secret zumindest entweder einen Zeichencode-Indexwert, einen Paketlängenwert, einen Zeitverzögerungswert und/oder einen Wert, der bei einer logischen Operation mit dem ermittelten Zeichencode verwendet werden soll, umfasst.
  20. Das Verfahren gemäß Anspruch 17, das ferner ein selektives Einrichten eines Kommunikationsflusses zwischen einer Tastatur und jeder einer Mehrzahl von Anwendungen umfasst, wobei jeder Kommunikationsfluss ein anderes Shared Secret verwendet.
DE112008003630T 2008-01-22 2008-01-22 Shared secret, das zwischen Tastatur und Anwendung verwendet wird Ceased DE112008003630T5 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2008/051603 WO2009094018A1 (en) 2008-01-22 2008-01-22 Shared secret used between keyboard and application

Publications (1)

Publication Number Publication Date
DE112008003630T5 true DE112008003630T5 (de) 2010-10-28

Family

ID=40901355

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112008003630T Ceased DE112008003630T5 (de) 2008-01-22 2008-01-22 Shared secret, das zwischen Tastatur und Anwendung verwendet wird

Country Status (6)

Country Link
US (1) US9292715B2 (de)
CN (1) CN101925909A (de)
DE (1) DE112008003630T5 (de)
GB (1) GB2469594B (de)
TW (1) TWI444834B (de)
WO (1) WO2009094018A1 (de)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012023050A2 (en) 2010-08-20 2012-02-23 Overtis Group Limited Secure cloud computing system and method
US9390251B2 (en) 2011-08-08 2016-07-12 Intel Corporation Delivering data from a range of input devices over a secure path to trusted services in a secure element
CN102930222B (zh) * 2012-09-20 2015-09-30 无锡华御信息技术有限公司 反键盘记录方法及系统
EP3742663B1 (de) * 2019-05-20 2024-02-07 Nokia Technologies Oy Gemeinsame geheimnisgenerierung

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5903653A (en) * 1997-02-11 1999-05-11 Remote Technologies, L.P. Vehicle security system
US6490353B1 (en) * 1998-11-23 2002-12-03 Tan Daniel Tiong Hok Data encrypting and decrypting apparatus and method
US7328457B1 (en) * 1999-06-30 2008-02-05 Entrust Limited Method and apparatus for preventing interception of input data to a software application
KR100379675B1 (ko) * 2000-07-08 2003-04-11 이종우 보안기능을 갖는 어댑터 및 이를 이용한 컴퓨터 보안 시스템
KR100378586B1 (ko) * 2001-08-29 2003-04-03 테커스 (주) 엑티브엑스 기반의 키보드 해킹 방지 방법 및 장치
US7779062B2 (en) * 2004-08-18 2010-08-17 Ripple Effects Holdings Limited System for preventing keystroke logging software from accessing or identifying keystrokes
US20030159053A1 (en) * 2002-02-19 2003-08-21 Charles Fauble Secure reconfigurable input device with transaction card reader
US7243237B2 (en) * 2003-05-02 2007-07-10 Microsoft Corporation Secure communication with a keyboard or related device
US7697691B2 (en) * 2004-07-14 2010-04-13 Intel Corporation Method of delivering Direct Proof private keys to devices using an on-line service
US20060184785A1 (en) * 2005-02-16 2006-08-17 David Carroll Challener Apparatus, system, and method for securing I/O communications between a blade and a peripheral interface device of a blade-based computer system
JP2006343873A (ja) 2005-06-07 2006-12-21 Canon Inc パスワード入力装置およびその方法、およびパスワード認証システム
KR20070016029A (ko) * 2005-08-02 2007-02-07 최성필 컴퓨터 보안 기능을 제공하는 휴대용 usb 저장 장치 및상기 휴대용 usb 저장 장치의 동작 방법
TWI279726B (en) * 2005-09-28 2007-04-21 Lite On Technology Corp Method and computer system for securing backup data from damage by virus and hacker program
US7703088B2 (en) * 2005-09-30 2010-04-20 Intel Corporation Compressing “warm” code in a dynamic binary translation environment
KR100734145B1 (ko) * 2005-10-12 2007-07-03 주식회사 안철수연구소 키보드 데이터 인증을 이용한 키 입력 도용 방지 방법
US20070240212A1 (en) * 2006-03-30 2007-10-11 Check Point Software Technologies, Inc. System and Methodology Protecting Against Key Logger Spyware
US7899397B2 (en) * 2007-11-27 2011-03-01 Avi Kumar Mobile internet device with detachable wireless module

Also Published As

Publication number Publication date
TW200941279A (en) 2009-10-01
TWI444834B (zh) 2014-07-11
GB2469594B (en) 2012-08-29
WO2009094018A1 (en) 2009-07-30
GB2469594A (en) 2010-10-20
US9292715B2 (en) 2016-03-22
GB201012069D0 (en) 2010-09-01
US20100287315A1 (en) 2010-11-11
CN101925909A (zh) 2010-12-22

Similar Documents

Publication Publication Date Title
DE69634880T2 (de) Verfahren und gerät zum kontrollierten zugriff zu verschlüsselten datenakten in einem computersystem
DE69736697T2 (de) Verfahren und Gerät zur Steuerung von Zugriff auf Systembetriebsmittel
DE112013000357B4 (de) System zum Authentifizieren einer Annahme einer Zeichenfolge durch einen Automaten
DE102009013384B4 (de) System und Verfahren zur Bereitstellung einer sicheren Anwendungsfragmentierungsumgebung
EP2122587B1 (de) Verfahren zum zugriff auf einen tragbaren speicherdatenträger mit zusatzmodul und tragbarer speicherdatenträger
DE60219706T2 (de) Verfahren und Vorrichtung zum Anfügen einer elektronischen Unterschrift an ein strukturiertes Dokument
EP1818844A1 (de) Verfahren zur Benutzung von Sicherheitstoken
DE112011100182T5 (de) Transaktionsprüfung für Datensicherheitsvorrichtungen
DE10115118A1 (de) Verfahren zur Übertragung von Daten über einen Datenbus
DE60008795T2 (de) Informatikvorrichtung zur anwendung von akkredtierungsdaten auf eine software oder auf einen dienst
DE112010003149T5 (de) Gemeinschaftliche Verschlüsselung und Entschlüsselung durch Agenten
DE102019119831A1 (de) Verschlüsselungsschaltung zum Durchführen von virtuellen Verschlüsselungsoperationen
DE112008003630T5 (de) Shared secret, das zwischen Tastatur und Anwendung verwendet wird
DE102019113249A1 (de) Wertevergleichsserver, wertevergleichsverschlüsselungssystem und wertevergleichsverfahren
DE602004001732T2 (de) Datenverschlüsselung in einem elektronischen Gerät mit mehreren symmetrischen Prozessoren
DE19953055C2 (de) Vorrichtung und Verfahren zur geschützten Ausgabe eines elektronischen Dokuments über ein Datenübertragungsnetz
DE112018007433T5 (de) Registrierungsvorrichtung, servervorrichtung, durchsuchbares verschlüsselungssystem, durchsuchbares verschlüsselungs-verfahren, registrierungsprogramm und serverprogramm
DE602004010458T2 (de) Halbleiterspeicherkarte und rechnerlesbares programm
DE112017004995T5 (de) Verfahren und Vorrichtung zum gemeinsamen Nutzen eines Sicherheitsmetadaten-Speicherplatzes
CH716505B1 (de) System und Verfahren zum Bereitstellen von kryptographischer Asset-Transaktionen, Hardware-Genehmigungsterminal, Backend-Server und Computerprogrammprodukt.
DE69934707T2 (de) Gegenmassnahmenvorrichtung in einem elektronischen bauteil um einen krypto-algorithmus mit geheimschlüssel durchzuführen
EP1801696B1 (de) Multithreading - fähige virtuelle Maschine
EP2486489B1 (de) Portabler datenträger mit zusatzfunktionalität
WO2004013821A1 (de) Einrichten eines dateisystems in einem datenträger
EP2866486B1 (de) Verfahren zur Erzeugung einer elektronischen Signatur

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
R016 Response to examination communication
R079 Amendment of ipc main class

Free format text: PREVIOUS MAIN CLASS: G06F0021040000

Ipc: G06F0021820000

Effective date: 20130131

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