DE69925996T2 - Verfahren und vorrichtung zur sitzungsverwaltung und benutzerauthentifizierung - Google Patents

Verfahren und vorrichtung zur sitzungsverwaltung und benutzerauthentifizierung Download PDF

Info

Publication number
DE69925996T2
DE69925996T2 DE69925996T DE69925996T DE69925996T2 DE 69925996 T2 DE69925996 T2 DE 69925996T2 DE 69925996 T DE69925996 T DE 69925996T DE 69925996 T DE69925996 T DE 69925996T DE 69925996 T2 DE69925996 T2 DE 69925996T2
Authority
DE
Germany
Prior art keywords
user
service
session
authentication
network terminal
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.)
Expired - Fee Related
Application number
DE69925996T
Other languages
English (en)
Other versions
DE69925996D1 (de
Inventor
A. Gerard WALL
T. Alan RUBERG
G. James HANKO
Duane J. Northcutt
L. Lawrence BUTCHER
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.)
Sun Microsystems Inc
Original Assignee
Sun Microsystems Inc
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 Sun Microsystems Inc filed Critical Sun Microsystems Inc
Publication of DE69925996D1 publication Critical patent/DE69925996D1/de
Application granted granted Critical
Publication of DE69925996T2 publication Critical patent/DE69925996T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/31User authentication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/31User authentication
    • G06F21/34User authentication involving the use of external additional devices, e.g. dongles or smart cards
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2103Challenge-response
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0861Network architectures or network communication protocols for network security for authentication of entities using biometrical features, e.g. fingerprint, retina-scan

Description

  • Stand der Technik
  • 1. Gebiet der Erfindung
  • Diese Erfindung bezieht sich auf Computersysteme und insbesondere auf die Benutzerauthentifizierung und das Standortmanagement von Benutzersitzungen.
  • 2. Stand der Technik
  • Die Grundüberzeugungen, mit denen Computersysteme konfiguriert wurden, haben sich über die Zeit geändert. Früher bestand ein Computer aus einem sogenannten Großrechner bzw. einem mainframe, auf den von einer Mehrzahl von "Ausgabeterminals" zugegriffen wurde. Der Großrechner war eine zentrale Station, die Rechenleistung und Datenspeicherung bereitstellte. Ein Ausgabeterminal war eine Anzeigevorrichtung für Daten, welche vom Großrechner bereitgestellt wurden, und stellte auch Mittel für die Übertragung einiger Daten zum Großrechner bereit. Andere Systemparadigmen folgten, einschließlich des Desktop-Computers, Client-/Server-Architekturen, und neuerdings die sogenannten Netzwerkcomputer.
  • Ein Desktop-Computer ist ein eigenständiges Computersystem, bei dem alle Anwendungen und Daten auf dem Desktop-Computersystem selbst lagern. Solche Systeme werden in Form von Personalcomputern implementiert und haben die Benutzung von Computern im privaten Bereich und in Büros angeregt. Ein Nachteil von Desktop-Computern ist die kurze Lebenszeit der im System benutzten Hardware. Desktop-Computer besitzen einen Mikroprozessor und wenn schnellere und leistungsfähigere Mikroprozessoren verfügbar werden, sind Aktualisierungen existierender Desktop-Systeme oder der Kauf neuer Desktop-Systeme erforderlich. In manchen Büros werden Desktop-PCs durchgehend eingesetzt, und deren Zahl geht manchmal in die Tausende oder Zehntausende. Ein Nachteil solcher großen Systeme ist der Mangel an Kompatibilität bei den Anwendungen und Daten der einzelnen Systeme. Einige Benutzer haben aktuellere Versionen von Software-Anwendungen, die nicht abwärts kompatibel mit älteren Versionen der Software sind. Die Lösung dieses Problems besteht darin, eine konsistente Software auf allen Systemen zu betreiben. Die Kosten zum Aktualisieren jedes Systems und die Bereitstellung lizenzierter Kopien der Software und Software-Aktualisierung können jedoch erheblich sein.
  • Client-/Server-Systeme sind Systeme, bei denen durch ein Netzwerk von Client-PCs auf zentrale Daten und/oder Anwendungen zugegriffen wird. Dies ermöglicht eine administrative Effizienz bei der Pflege der gemeinsam benutzen Daten. Die Clients haben jedoch lokale Applikationen und Da ten, die die gleiche Art von Problemen mit sich bringen kann, wie bei den bereits beschriebenen Desktop-Systemen.
  • Neuerdings führte der Aufstieg des Internets zu dem Vorschlag, sogenannte Netzwerkcomputer zu benutzen. Ein Netzwerkcomputer ist eine abgespeckte Version eines Personalcomputers mit weniger Speicherplatz, weniger Arbeitsspeicher und oftmals weniger Rechenleistung. Die Idee ist, dass Netzwerkcomputer durch das Internet auf Daten zugreifen, und nur diejenige Anwendungen, die für eine bestimmte Aufgabe nötig sind, dem Netzwerk-Computer bereitgestellt werden. Wenn die Applikationen nicht länger benutzt werden, werden sie nicht auf dem Netzwerkcomputer gespeichert. Es gab einige Kritik an solchen Systemen, da sie nicht die Leistung eines vollwertigen Desktop-Systems haben, aber auch nicht genügend preiswert sind, um die herabgesetzten Fähigkeiten zu rechtfertigen. Und obwohl der Netzwerkcomputer ein Fundgerät eines Desktop-Computers ist, kann der Netzwerkcomputer weiterhin Aktualisierungen von Hardware und Software benötigen, um eine adäquate Leistungsfähigkeit zu bieten.
  • Ein Beispiel eines dynamischen Host-Konfigurationsprotokolls findet sich in der RFC 2131. Die RFC 1321 und 2104 zeigen Beispiele von MD5, bzw. der Nachrichtenverarbeitung. Ein Punkt-zu-Punkt Herausforderungs-Host-Authentifizierungsprotokoll findet sich in der RFC 1994.
  • "A Movable User Interface Based On A Simple X-Window Like Protocol", von Sanjay Dasgupta et. al., Proceedings of the International Conference on EC3-Energy, Computer, Communication and Control Systems (TENCON), US, New York, IEEE 1991, Seite 199–203, ISBN: 0-7803-0539-6, beschreibt eine bewegliche Benutzerschnittstelle, die eine Umgebung bereitstellt, bei der ein Prozess-Benutzer eine unbegrenzte Flexibilität hinsichtlich seines Aufenthaltsortes hat. Die Terminal-Eingaben/Ausgaben eines Prozesses können durch den Benutzer zu einem anderen Terminal mit vollständiger Kontinuität verlagert werden. Beim Prozess oder dem Betriebssystem sind keine Änderungen erforderlich, um dieses Merkmal zu unterstützen, welches dadurch erzielt wird, dass der Prozess eine Eingabe/Ausgabe an ein Pseudo-Terminal sendet. Ein Server ist dann dafür verantwortlich, dass die Eingabe/Ausgabe an einen Client weitergeleitet wird, der mit dem tatsächlichen (physischen) Terminal verknüpft ist.
  • Darstellung der Erfindung
  • Die Erfindung wird durch die unabhängigen Ansprüche definiert. Weitere Ausführungsformen sind Gegenstand der abhängigen Ansprüche.
  • Eine Authentifizierung und ein Sitzungsmanagement können mit einer Systemarchitektur genutzt werden, die die Funktionalität zwischen einer Mensch-Maschine-Schnittstellenvorrichtung (HID) und einem Rechenserviceprovider, wie beispielsweise einem Server, aufteilt. Ein auf einem Server ausgeführter Authentifizierungsmanager wechselwirkt mit der HID, um den Benutzer zu identifizieren, wenn sich der Benutzer über die HID mit dem System verbindet. Ein auf einem Server ausgeführter Sitzungsmanager verwaltet auf Computern ablaufende Dienste, die Rechendienste (zum Beispiel Programme) im Auftrag des Benutzers bereitstellen. Der Sitzungsmanager benachrichtigt jeden Dienst in einer Sitzung darüber, dass der Benutzer über eine vorgegebene Desktop-Maschine mit dem System verbunden ist. Ein Dienst kann eine Anzeigeausgabe an die HID richten, während der Benutzer mit dem System verbunden ist. Wenn sich ein Benutzer vom System entfernt wird jeder Dienst, der für den Benutzer ausgeführt wird, über den Authentifizierungsmanager und den Sitzungsmanager informiert. Nach der Benachrichtigung, dass sich der Benutzer vom System entfernt hat, wird ein Dienst weiterhin ausgeführt, wobei seine Anzeige an die Desktop-Maschine gestoppt wird.
  • Kurze Beschreibung der Zeichnungen
  • 1 ist ein Beispiel von Systemarchitekturen, die in einer oder mehreren Ausführungsformen der Erfindung benutzt werden.
  • 2 veranschaulicht Komponenten der Authentifizierung und des Sitzungsmanagements, sowie ihr Zusammenarbeiten gemäß einer Ausführungsform der Erfindung.
  • 3 zeigt ein Arbeitsablaufdiagramm für die Initialisierung eines Netzwerk-Terminals als Antwort auf eine Anschaltoperation gemäß einer Ausführungsform der Erfindung.
  • 4A4C zeigen ein Arbeitsablaufdiagramm gemäß einer Ausführungsform der Erfindung für die Initialisierung des Netzwerk-Terminals 202 als Beantwortung einer Aufweckoperation.
  • 5A–AB zeigen den Ablauf eines Authentifizierungsprozesses gemäß einer Ausführungsform der Erfindung.
  • 6 zeigt den Ablauf eines Authentifizierungsabfrageprozesses gemäß einer Ausführungsform der Erfindung.
  • 7 und 8 zeigen Beispiele von Systemarchitekturen, die in einer oder mehren Ausführungsformen der Erfindung benutzt werden.
  • Ausführliche Beschreibung der Erfindung
  • Ein Verfahren und eine Vorrichtung für das Sitzungsmanagement und die Benutzerauthentifizierung werden beschrieben. In der folgenden Beschreibung werden zahlreiche spezielle Details dargelegt, um eine gründliche Beschreibung der vorliegenden Erfindung bereitzustellen. Es wird jedoch für den Fachmann klar werden, dass die vorliegende Erfindung ohne diese speziellen Details ausgeführt werden kann. In anderen Fällen wurden allgemein bekannte Merkmale nicht im Detail beschrieben, um nicht den Blick auf die Erfindung zu verstellen.
  • Überblick
  • Verfahren und Vorrichtung werden gemäß einer oder mehreren Ausführungsformen der Erfindung für die Authentifizierung eines Systembenutzers und Managementdiensten, die im System im Namen des Benutzers ausgeführt werden, beschrieben. In einer Ausführungsform der Erfindung werden innerhalb einer Systemarchitektur, welche die Rechenfunktionalität zwischen einer Benutzer-HID und einem Rechendienstprovider, wie beispielsweise einem Server, aufteilt, eine Authentifizierung und ein Sitzungsmanagement ausgeführt.
  • Die 1, 7 und 8 stellen Beispiele für in einer oder mehreren Ausführungsformen der Erfindung benutzten Systemarchitekturen dar. Die vorliegende Erfindung kann in Standard-Desktop-Computersystemen implementiert werden, wie sie in 1 beschrieben sind, oder in jedem anderen Computersystem einschließlich Client-Server-Systeme, Netzwerk-Computern, oder dem Mensch-Maschine-Schnittstellen-Vorrichtungssystem der 7 und 8.
  • Ausführungsform einer Computer-Ausführungsumgebung (Hardware)
  • Eine Ausführungsform der Erfindung kann als Computersoftware in der Form eines computerlesbaren Codes implementiert werden, der auf einem Allzweckrechner, wie dem in 1 gezeigten Computer 100, ausgeführt werden kann, oder in der Form von Byte-Codes vorliegender Class-Dateien, die innerhalb einer JavaTM-Laufzeitumgebung ausführbar sind, die auf einem solchen Computer läuft. Eine Tastatur 110 und eine Maus 111 sind an ein bidirektionales Bussystem 118 angeschlossen. Die Tastatur und die Maus dienen zur Vornahme von Benutzereingaben in das Computersystem und zum Weiterleiten dieser Benutzereingaben zum Prozessor 113. Andere geeignete Eingabevorrichtungen können zusätzlich zu oder anstelle von der Maus 111 und der Tastatur 110 benutzt werden. E/A-(Eingabe/Ausgabe-)Einheit 119, gekoppelt an das bidirektionale Bussystem 118, stellt solche E/A-Elemente als einen Drucker, A/V-(Audio/Vdeo) E/A, etc. dar.
  • Der Computer 100 besitzt einen Videospeicher 114, Hauptspeicher 115 und Massenspeicher 112, alle zusammen mit der Tastatur 110, der Maus 111 und dem Prozessor 113 an das bidirektionale Bussystem 118 gekoppelt sind. Der Massenspeicher 112 kann sowohl fest eingebaute und auch Wechselmedien umfassen, beispielsweise magnetische, optische oder magneto-optische Speichersysteme, oder jede andere verfügbare Massenspeichertechnologie. Der Bus 118 besitzt zum Beispiel 32 Adressleitungen für das Adressieren von Videospeicher 114 oder Hauptspeicher 115. Der Systembus 118 beinhaltet zum Beispiel auch einen 32-Bit Datenbus für das Übertragen von Daten zwischen und unter den Komponenten, wie zum Beispiel einen Prozessor 113, Hauptspeicher 115, Videospeicher 114 und Massenspeicher 112. Alternativ können Multiplex-Daten-/ Adressleitungen anstelle separater Daten- und Adressleitungen benutzt werden.
  • In einer Ausführungsform der Erfindung ist der Prozessor 113 ein von Motorola hergestellter Mikroprozessor, wie zum Beispiel der 680X0-Prozessor oder ein von Intel hergestellter Mikroprozessor, wie zum Beispiel der 80X86, oder ein Pentium-Prozessor oder ein SPARCTM-Mikroprozessor von Sun Microsystems. Jedoch kann jeder andere geeignete Mikroprozessor oder Mikrocomputer benutzt werden. Der Hauptspeicher 115 umfasst einen dynamischen Schreib-/Lesespeicher mit direktem Zugriff (DRAM). Der Videospeicher 114 ist ein Video-Schreib-/Lesespeicher mit direktem Zugriff und Dual Port.
  • Ein Port des Videospeichers 114 ist mit dem Videoverstärker 116 verbunden. Der Videoverstärker 116 wird benutzt, um den Kathodenstrahlrohr-(CRT)Rastermonitor 117 zu betreiben. Alternativ kann ein Videospeicher 114 benutzt werden, um einen Flachbildschirm oder eine Flüssigkeitskristalianzeige (LCD), oder jede andere geeignete Datenpräsentationsvorrichtung zu betreiben. Der Videospeicher 116 ist allgemein bekannt und kann durch jede geeignete Vorrichtung implementiert werden. Dieser Schaltkreis konvertiert im Videospeicher 114 abgelegte Pixeldaten in ein Rastersignal, das vom Monitor 117 benutzt werden kann. Der Monitor 117 ist ein Monitortyp, der für die Anzeige grafischer Bilder geeignet ist.
  • Der Computer 100 kann auch eine Kommunikationsschnittstelle 120 besitzen, die an einen Bus 118 gekoppelt ist. Die Kommunikationsschnittstelle 120 stellt eine Zweiwege-Kommunikationskopplung über die Netzwerkleitungen 121 an das lokale Netzwerk 122 bereit. Ist zum Beispiel die Kommunikationsschnittstelle eine ISDN-(Integrated Services Digital Network)Karte oder ein Modem oder ein Kabelmodem, so stellt die Kommunikationsschnittstelle 120 eine Datenkommunikationsverbindung des entsprechenden Typs von Telefonleitung bereit, welche ein Teil der Netzwerkleitung 121 umfasst. Wenn die Kommunikationsschnittstelle eine LAN-(Local Area Network)Karte ist, stellt die Kommunikationsschnittstelle 120 eine Datenkommunikationsverbindung über die Netzwerkleitung 121 an ein kompatibles LAN bereit. Drahtlose Verbindungen sind auch möglich. In jeder derartigen Implementierung sendet und empfängt die Kommunikationsschnittstelle 120 elektrische, elektromagnetische oder optische Signale, die digitale Datenströme tragen können, welche verschiedene Arten von Informationen repräsentieren.
  • Die Netzwerkverbindung 121 stellt typischerweise eine Datenkommunikation durch eine oder mehrere Netzwerke zu anderen Datendiensten bereit. Zum Beispiel kann die Netzwerkverbindung 121 eine Verbindung durch ein lokales Netzwerk 122 zum lokalen Server-Computer 123 bereitstellen, oder zu einer Datenausrüstung, die von einem Internet-Serviceprovider (ISP) 124 betrieben wird. ISP 124 stellt seinerseits Datenkommunikationsdienste für das weltweite paketorientierte Datenkommunikationsnetzwerk bereit, welches allgemein als das „Internet" 125 bezeichnet wird. Das lokale Netzwerk 122 und das Internet 125 benutzen jeweils elektrische, elektromagnetische oder optische Signale, die digitale Datenströme transferieren. Die Signale durch die verschiedenen Netzwerke und die Signale auf der Netzwerkleitung 121 und durch die Kommunikationsschnittstelle 120, welche die digitalen Daten zu und vom Computer 100 übertragen, sind beispielhafte Formen von Trägerwellen, die die Information transportieren.
  • Der Computer 100 kann Nachrichten senden und Daten empfangen, einschließlich Programmcode, durch das oder die Netzwerke, durch die Netzwerkverbindung 121 und die Kommunikationsschnittstelle 120. Im Beispielsfall des Internets kann der Fern-Server-Computer 126 einen angeforderten Code für ein Anwendungsprogramm durch das Internet 125, den ISP 124, das lokale Netzwerk 122 und die Kommunikationsschnittstelle 120 übertragen.
  • Der empfangene Code kann vom Prozessor 113, so wie er empfangen wurde, ausgeführt werden, und/oder auf Massenspeicher 112 abgelegt werden, oder auf anderem nicht-flüchtigem Speicher für die spätere Ausführung. Auf diese Weise kann der Computer 100 Anwendungscode in der Form einer Trägerwelle erhalten.
  • Anwendungscode kann in jeder beliebigen Form eines Computerprogrammprodukts verkörpert sein. Ein Computerprogrammprodukt umfasst ein Medium, dass zum Speichern oder Transportieren computerlesbaren Codes ausgelegt ist, oder in welchem computerlesbarer Code eingebettet ist. Einige Beispiele für Computerprogrammprodukte sind CD-ROMs, ROM-Karten, Disketten, Magnetbänder, Computerfestplatten, Server in einem Netzwerk, und Trägerwellen.
  • Computersystem mit Mensch-Maschine-Schnittstellenvorrichtung
  • Die Erfindung findet auch bei Computersystemen Anwendung, bei denen anzuzeigende Daten durch ein Netzwerk bereitgestellt werden. Das Netzwerk kann ein LAN sein, ein WAN (wide area network), das Internet, das World Wide Web, oder jede andere geeignete Netzwerkkonfiguration. Eine Ausführungsform der Erfindung wird in einer Computersystemkonfiguration benutzt, welche in dieser Beschreibung als Computersystem mit Mensch-Maschine-Schnittstellenvorrichtung bezeichnet wird.
  • In diesem System ist die Funktionalität des Systems zwischen einer Anzeige- und Eingabevorrichtung sowie Datenquellen oder Diensten aufgeteilt. Die Anzeige- und Eingabevorrichtung ist eine Mensch-Maschine-Schnittstellenvorrichtung (HID). Die Aufteilung dieses Systems ist derart, dass Zustands- und Rechenfunktionen vom HID entfernt wurden, und bei Datenquellen oder Diensten bleiben. In einer Ausführungsform der Erfindung kommunizieren eine oder mehrere Dienste mit einer oder mehreren HIDs durch eine zusammengeschaltete Struktur, wie beispielsweise einem Netzwerk. Ein Beispiel eines solchen Systems ist in 7 gezeigt. Bezug nehmend auf 7 besteht das System auf einem Rechenservice-Provider 700, der durch die zusammengeschaltete Struktur 701 mit den HIDs 702 kommuniziert.
  • Rechenservice-Provider
  • Im HID-System findet sich die Rechenleistung und die Zustandsverwaltung in den Dienstanbietern oder Diensten. Die Dienste sind nicht mit einem speziellen Computer verbunden, sondern können über ein oder mehrere herkömmliche Desktop-Systeme verteilt werden, so wie sie in Verbindung mit 1 beschrieben wurden, oder mit traditionellen Servern. Ein Computer kann einen oder mehrere Dienste haben, oder es kann ein Dienst durch einen oder mehrere Computer implementiert werden. Der Dienst stellt Berechnungen, Zustand und Daten für die HIDs bereit, und der Dienst ist unter der Kontrolle einer gemeinsamen Autorität oder eines Managers. In 7 finden sich die Dienste auf den Computern 710, 711, 712, 713 und 714.
  • Beispiele von Diensten beinhalten X11/Unix-Dienste, archivierte Videodienste, Dienste von Windows NT, Programmausführungsdienste von JavaTM und andere. Ein Dienst ist hierbei ein Prozess, der Ausgangsdaten bereitstellt, und der auf Benutzeranfragen und -eingaben antwortet.
  • Zusammengeschaltete Struktur
  • In der Erfindung ist die zusammengeschaltete Struktur jede beliebige von mehreren geeigneten Kommunikationspfaden für die Übertragung von Daten zwischen den Diensten und den HIDs. In einer Ausführungsform ist die zusammengeschaltete Struktur ein lokales Netzwerk, das als Ethernet-Netzwerk implementiert ist. Jedes andere lokale Netzwerk kann auch benutzt werden. Es kann auch überlegt werden, ob die Erfindung die Benutzung eines WAN, des Internets, des World Wide Web, oder anderes vorsieht. Die zusammengeschaltete Struktur kann mit einem physikalischen Medium, wie beispielsweise einem Kabel oder einem faseroptischen Kabel implementiert werden, oder es kann in einer kabellosen Umgebung implementiert werden.
  • HIDs
  • Das HID ist ein Mittel, mit dem Benutzer auf die von den Diensten bereitgestellten Rechendienste zugreifen können. 7 zeigt HIDs 721, 722, und 723. Ein HID besitzt eine Anzeige 726, eine Tastatur 724, eine Maus 725 und Lautsprecher 727. Die HID besitzt die Elektronik, um diese Vorrich tungen mit der zusammengeschalteten Struktur zu verbinden, und um Daten von oder zu diesen Diensten zu übertragen.
  • Ein Blockdiagramm der HID wird in 8 gezeigt. Die Komponenten der HID sind intern an einen PCI-Bus 812 gekoppelt. Ein Netzwerkkontrollblock 802 kommuniziert mit der zusammengeschalteten Struktur, wie beispielsweise einem Ethernet, durch eine Leitung 814. Ein Audio-Codec 803 empfängt Audiodaten über die Schnittstelle 816 und ist an den Block 802 gekoppelt. USB-Datenkommunikation wird über die Leitungen 813 zum USB-Controller 801 ermöglicht.
  • Ein integrierter Prozessor 804 kann zum Beispiel ein Sparc2ep mit gekoppelten Flash-Speicher 805 und DRAM 806 sein. Der USB-Controller 801, Netzwerk-Controller 802 und der integrierte Prozessor 804 sind jeweils an den PCI-Bus 812 gekoppelt. Ebenfalls an den PCI-Bus 812 ist der Video-Controller 809 gekoppelt. Der Video-Controller 809 kann zum Beispiel ein ATI RagePro + Bildspeicher-Controller sein, der auf Leitung 815 einen SVGA-Ausgabe liefert. NTSC-Daten 817 werden in und aus dem Video-Controller durch den Videodekodierer 810 und den Videokodierer 811 bereitgestellt. Eine Chipkartenschnittstelle 802 kann ebenfalls an den Video-Controller 809 gekoppelt sein.
  • Das oben beschriebene Computersystem dient lediglich zu Veranschaulichungszwecken. Eine Ausführungsform der Erfindung kann in jede Art von Computersystem oder Programmier- oder Verarbeitungsumgebung implementiert werden.
  • In einer oder mehreren Ausführungsformen der Erfindung sind Komponenten für die Authentifizierung und das Sitzungsmanagement konfiguriert, um Benutzer zu authentifizieren und um Sitzungen zu verlegen und zu verwalten. Eine Sitzung ist eine anhaltende Repräsentation eines darauf bezogenen Satzes von einem oder mehreren Diensten, die im Namen eines Benutzers ausgeführt werden. Ausführungsformen der Erfindung authentifizieren einen Benutzer und verlegen eine Benutzersitzung basierend auf dem gegenwärtigen Ort des Benutzers, ohne dass innerhalb einer zu konfigurierenden Sitzung ein Dienst benötigt wird, um eine Benutzervalidierung und -verlegung durchzuführen. Ausführungsformen der Erfindung authentifizieren den Benutzer ein Mal für alle Dienste des Benutzers. Durch Benutzung von Ausführungsformen der Erfindung werden Dienste an das HID (oder andere Terminal-Vorrichtungen) geleitet, welche ein Benutzer gegenwärtig benutzt. Es ist nicht für den Benutzer erforderlich, sich für jeden Dienst anzumelden und eine neue Verbindung, die für die HID spezifisch ist, aufzubauen.
  • Gemäß von Ausführungsformen der Erfindung ist die Authentifizierung eine Einweg-Authentifizierung, welche die Handhabbarkeit und Skalierbarkeit der Authentifizierung verbessert. Es ist nicht erforderlich Schlüssel auszutauschen, was die Notwendigkeit vermeidet, nach Schlüsseln in zentralen Datenbanken zu suchen.
  • 2 veranschaulicht Komponenten für die Authentifizierung und das Sitzungsmanagement, und ihr Zusammenwirken gemäß einer Ausführungsform der Erfindung. Das Netzwerk-Terminal 202 ist eine Mensch-Maschine-Schnittstellenvorrichtung (HID) (zum Beispiel HIDs 721, 722 und 723). Ein HID hat, als Beispiele für seine Funktionen, die Aufgabe, Ausgaben von Diensten an den Benutzer auszugeben und Eingaben für Dienste vom Benutzer entgegenzunehmen. Das Netzwerk-Terminal 202 hat die Fähigkeit auf einen Befehl zu antworten (zum Beispiel ein Anzeigebefehl), welcher zum Beispiel von einem Software-Programm empfangen wurde (zum Beispiel Dienste 230238, Authentifizierungsmanager 204 und Sitzungsmanager 206), die auf einem Rechenserviceprovider ausgeführt werden (zum Beispiel Computer 710, 711, 712, 713, und 714). Die von einem Benutzer empfangene Eingabe wird zum Beispiel an einen Dienst weitergeleitet, der eine Benutzeranfrage erfüllt.
  • Mehr als ein Server kann die Dienste ausführen, die eine Sitzung umfassen. Zum Beispiel wird in der Sitzung 208 ein Dienst 230 auf dem Server 210 ausgeführt, Dienste 232 und 234 werden auf dem Server 212 ausgeführt, und Dienste 236 und 238 werden auf dem Server 214 ausgeführt.
  • Ein Benutzer greift auf ein System (zum Beispiel einen Server, eine Sitzung, einen Dienst und ein Netzwerk-Terminal) zu, in dem er eine Anmeldung vornimmt. Während der Anmeldung wird der Benutzer durch den Sitzungsmanager 204 identifiziert. Verschiedene Techniken können benutzt werden, die es erlauben, dass der Benutzer eine Anmeldung beginnt. Zum Beispiel kann der Benutzer eine Anmeldung dadurch beginnen, dass er auf eine Taste des Netzwerk-Terminals 202 drückt.
  • In einer Ausführungsform der Erfindung greift der Benutzer auf das System zu, indem er eine Chipkarte in einen Kartenleser einführt (zum Beispiel einen Kartenleser 216, der mit dem Netzwerk-Terminal 202 verbunden ist). Eine Chipkarte ist eine Karte, die imstande ist, Informationen wie solche in einem Magnetstreifen oder einem Speicher der Chipkarte zu speichern. Die Chipkarte kann Benutzerinformationen, wie zum Beispiel eine Benutzeridentifikation (zum Beispiel eine Benutzer-ID, wie zum Beispiel eine 64-Bit Zahl) und einen Geheimcode (zum Beispiel eine 128-Bit Zufallszahl) speichern, die zum Netzwerk-Terminal 202 übertragen wird. Der Geheimcode wird während der Authentifizierung benutzt.
  • Das Netzwerk-Terminal 202 kennt seine Verbindungs-Netzwerkadresse (oder kann sie erhalten) und die Adresse des Authentifizierungsmanagers 204. Wenn ein Benutzer die Anmeldung beginnt, startet das Netzwerk-Terminal 202 eine Kommunikation mit dem Authentifizierungsmanager 204 um die Authentifizierung zu beginnen. Der Authentifizierungsmanager 204 ist ein aktives (d.h. ausführendes) Programm eines Rechendienstproviders, der mit dem Netzwerk-Terminal 202 über ein Verbindungsnetzwerk, wie beispielsweise einem lokalen Netzwerk (LAN) verbunden ist. Es sollte jedoch offensichtlich sein, dass das Netzwerk-Terminal 202 über den Authentifizierungsmanager 204 mit anderen Verbindungsnetzwerktechnologien wie beispielsweise Faserkanalschleifen oder Punkt-zu- Punkt-Kabeln, verbunden werden kann. Das Netzwerk-Terminal 202 sendet eine Startphasenanfrage an den Authentifizierungsmanager 204, die eine Benutzeridentifikation (Benutzer-ID) beinhaltet.
  • In einer Ausführungsform der Erfindung antwortet der Authentifizierungsmanager 204 auf die Startphasenanfrage, indem er eine Authentifizierung beginnt, um den Benutzer zu validieren. Die Authentifizierung kann jeden Mechanismus beinhalten, der die Identität des Systembenutzers verifiziert. Ein nur dem Benutzer bekannter Schlüssel bzw. bekanntes Passwort, oder biometrische Informationen können benutzt werden, um den Benutzer zu authentifizieren.
  • In einer Ausführungsform der Erfindung wird die Authentifizierung durch Überprüfen einer persönlichen Identifikationsnummer (PIN) vorgenommen, die vom Benutzer in das Netzwerk-Terminal 202 eingegeben wird. Der Authentifizierungsmanager 204 sendet einen Befehl (das heißt eine Authentifizierungsaufforderung), um eine Eingabe der Benutzer-PIN beim Netzwerk-Terminal 202 zu veranlassen. Die Benutzereingabe wird vom Netzwerk-Terminal 202 in Pakete unterteilt und zum Authentifizierungsmanager 204 übertragen (das heißt eine Authentifizierungsantwort).
  • Der Authentifizierungsmanager 204 überprüft die Authentifizierungsantwort mit den in der Authentifizierungsdatenbank 218 aufbewahrten Informationen, Informationen, die vom Benutzer bereitgestellten wurden, und Informationen, die während der Authentifizierung erzeugt wurden. Wenn der Benutzer authentifiziert ist, wird dem Benutzer Zugang zu einer Sitzung gewährt (zum Beispiel Sitzung 208).
  • Wenn das erwartete Ergebnis vom Benutzer erhalten wurde, benachrichtigt der Authentifizierungsmanager 204 den Sitzungsmanager 206 (über eine Verbindungsnachricht), dass sich der Benutzer beim Netzwerk-Terminal 202 am System angemeldet hat. In der Authentifizierungsdatenbank 218 enthaltene Sitzungsinformationen werden benutzt, um den Server, den Port und den Sitzungs-Identifikator (ID) für den Sitzungsmanager 206 zu identifizieren. Der Sitzungsmanager 206 ist ein auf einem Rechendienstprovider aktives Programm und ist beispielsweise mit dem Authentifizierungsmanager 204 und dem Netzwerk-Terminal 202 über ein zusammengeschaltetes Netzwerk verbunden. Der Authentifizierungsmanager 204 sendet eine Nachricht an den Sitzungsmanager 206, und benutzt hierbei den Server des Sitzungsmanagers 206 sowie Port-Informationen, die in der Authentifizierungsdatenbank 218 hinterlegt sind.
  • Als Antwort auf die Verbindungsnachricht vom Authentifizierungsmanager 204 benachrichtigt der Sitzungsmanager 206 die Dienste in der aktuellen Sitzung des Benutzers (d.h., die Dienste in der Sitzung 208), dass sich der Benutzer mit dem Netzwerk-Terminal 202 verbunden hat. Das bedeutet, dass der Sitzungsmanager 206 eine Verbindungsnachricht an die Dienste 230238 sendet, um Ausgaben an das Netzwerk-Terminal 202 zu richten. Der Sitzungsmanager 206 stellt sicher, dass Dienste, die als für die Sitzung erforderliche Dienste angesehen werden, ausgeführt werden. Ist dies nicht der Fall, veranlasst der Sitzungsmanager 206, dass sie gestartet werden. Der Benutzer kann innerhalb einer Sitzung mit den Diensten 230238 interagieren (zum Beispiel Sitzung 208). Das Netzwerk-Terminal 202 ist mit den Servern 210, 212 und 214 (und den Diensten 230238) über ein zusammengeschaltetes Netzwerk, wie beispielsweise einem LAN oder einer anderen Zusammenschaltungstechnologie verbunden. Der Benutzer kann auch neue Dienste starten oder existierende Dienste beenden.
  • Der Benutzer kann sich vom System entfernen, indem er die Karte vom Kartenleser 216 entfernt. Andere Mechanismen, um seine Verbindungstrennung auszudrücken, können ebenfalls im Rahmen der Erfindung benutzt werden (zum Beispiel eine "Abmelde"-Taste beim Netzwerk-Terminal 202). Dienste 230238 können weiterhin laufen, selbst nachdem der Benutzer die Karte vom Kartenleser 216 entnommen hat. Dies bedeutet, dass die mit einem Benutzer verknüpfte Sitzung bzw. verknüpften Sitzungen und Dienste, die eine Sitzung umfassen, weiterhin während des Zeitraums existieren, während der ein Benutzer nicht mit dem System verbunden ist (zum Beispiel abgemeldet ist). Wenn der Benutzer die Karte vom Kartenleser 216 entfernt, benachrichtigt das Netzwerk-Terminal 202 den Authentifizierungsmanager 204 (zum Beispiel über eine Verbindungstrennungsnachricht), welche den Sitzungsmanager 206 benachrichtigt (zum Beispiel über eine Verbindungstrennungsnachricht). Der Sitzungsmanager 206 benachrichtigt Dienste 230238 (zum Beispiel über eine Verbindungstrennungsnachricht), welche ihre Übertragung von Anzeigebefehlen an das Netzwerk-Terminal 202 beenden. Dienste 230238 werden jedoch während der Zeit, während der ein Benutzer nicht am Netzwerk-Terminal angemeldet ist, weiterhin ausgeführt. Der Benutzer kann sich für die Benutzung eines Netzwerk-Terminals, wie das Netzwerk-Terminal 202, zurückmelden, sich mit der Sitzung 208 verbinden und mit den Diensten 230238 interagieren.
  • Obwohl die 206 jeweils eine einzige Instanz zeigt, sollte es offensichtlich sein, dass es mehrere Instanzen von Netzwerk-Terminals 202, Authentifizierungsmanagern 204 und Sitzungen 208 geben kann. Zum Beispiel kann es mehr als eine Instanz eines Authentifizierungsmanagers 204 geben, die ein Netzwerk-Terminal 202 oder mehrere Instanzen von Netzwerk-Terminals 202 bedienen. Instanzen von Authentifizierungsmanagern 204 können in einer Hierarchie gemäß der Topologie des Netzwerks organisiert werden, oder sie können global verfügbar sein.
  • Hat man mehr als eine Instanz des Authentifizierungsmanagers, verbessert dies die Skalierbarkeit des Systems, da es möglich ist, Instanzen von Authentifizierungsmanagern 204 basierend auf der aktuellen Last (zum Beispiel der Zahl der Benutzer) hinzuzufügen (oder zu entfernen). Weiterhin wird die Zuverlässigkeit verbessert, da redundante Instanzen von Authentifizierungsmanagern 204 verwendet werden können.
  • Entsprechend kann es eine Mehrzahl von Instanzen von Sitzungsmanagern 206 geben. Wie beim Authentifizierungsmanager 204 können mehrfache Instanzen von Sitzungsmanagern 206 die Skalierbarkeit und die Zuverlässigkeit des Systems steigern.
  • Sitzungsmanager
  • Der Sitzungsmanager 206 betreibt eine Sitzungsdatenbank 220, die Mappings zwischen Benutzern, Sitzungen und Diensten beinhalten. Der Sitzungsmanager 206 verwaltet die Dienste, die jede vom Sitzungsmanager 206 verwaltete Sitzung umfassen. Zum Beispiel verwaltet der Sitzungsmanager 206 die Sitzung 208 und die Dienste 230238 innerhalb der Sitzung 208.
  • Um auf einen Rechendienstprovider zuzugreifen, wird zuerst ein Konto eröffnet oder für einen Benutzer freigeschaltet. Um zum Beispiel gemäß einer Ausführungsform der Erfindung einen Benutzer frei zu schalten, wird dem Benutzer eine Benutzer-ID, eine PIN und eine Chipkarte gegeben, welche die Benutzer-ID und einen Geheimcode speichern. Zusätzlich wird für den Benutzer eine Sitzung erzeugt. Wie nachfolgend beschrieben, kann eine Sitzung keine oder mehr erforderliche Dienste haben. Es kann notwendig sein, einige der erforderlichen Dienste zu starten, wenn die Sitzung erzeugt wird. Nachdem ein Dienst gestartet wurde, bleibt er aktiv, gleichgültig, ob der Benutzer mit dem System verbunden ist oder nicht. Der Abgleich der erforderlichen Dienste kann gestartet werden, wenn sich der Benutzer zum ersten Mal anmeldet.
  • Ein Benutzer ist nicht auf eine Sitzung beschränkt. Mit einem Benutzer kann zu jedem beliebigen Zeitpunkt eine Mehrzahl von Sitzungen verknüpft sein. Die Sitzungsdatenbank 220 besitzt Aufzeichnungen, die die Sitzung oder Sitzungen und den oder die Dienste innerhalb einer Sitzung identifizieren, die mit einem Benutzer verknüpft sind. Ein freigeschalteter Benutzer kann vom System entfernt werden. Wenn ein Benutzer vom System entfernt wird, werden alle mit dem Benutzer verknüpften Sitzungen vom System und von der Sitzungsdatenbank 220 entfernt. Die mit den Benutzersitzungen verknüpften Dienste werden ebenfalls gestoppt.
  • Nachdem ein Benutzer freigeschaltet ist, das System zu benutzen, kann sich der Benutzer über das Netzwerk-Terminal 202 am System anmelden. Wenn der Sitzungsmanager 206 vom Authentifizierungsmanager 204 benachrichtigt wird, dass der Benutzer mit dem Netzwerk-Terminal 202 verbunden ist, benachrichtigt der Sitzungsmanager 206 die Sitzung des Benutzers (das heißt die Dienste, die eine Sitzung umfassen). Der Sitzungsmanager 206 ruft die Sitzungsdatenbank 220 ab, um die Dienste der Sitzung zu identifizieren und zu benachrichtigen. Zum Beispiel beinhaltet die Sitzungsdatenbank 220 Informationen, die die Sitzung 208 und die Dienste 230238, die in der Sitzung 208 beinhaltet sind, identifizieren.
  • Die Sitzungsdatenbank 220 besitzt dauerhafte Sitzungsaufzeichnungen und dynamische Sitzungsaufzeichnungen, um Sitzungen und die mit einer Sitzung verknüpften Dienste zu identifizieren. Die Sitzungsdatenbank 220 kann eine oder mehrere Datenbanken oder Datenspeicher sein. Zum Beispiel können die dauerhaften Sitzungsaufzeichnungen in einer Konfigurationsdatei gespeichert sein, wohingegen die dynamischen Sitzungsaufzeichnungen im Speicher des Datenbanksystems gespeichert sind. Eine dauerhafte Sitzungsaufzeichnung besitzt Konfigurationsinformationen für den Benutzer und wird typischerweise zu dem Zeitpunkt erzeugt, zu dem der Benutzer für das System freigeschaltet wird. Eine dynamische Sitzungsaufzeichnung identifiziert diejenigen Dienste, die mit einem Benutzer verknüpft sind. Dynamische Sitzungsaufzeichnungen identifizieren die erforderlichen Dienste, die mit einer Benutzersitzung in einer permanenten Sitzungsaufzeichnung verknüpft sind, ebenso wie aktuell aktive Dienste. Das Folgende beinhaltet ein Format für eine permanente Sitzungsaufzeichnung gemäß einer Ausführungsform der Erfindung:
    Sitzungs-ID Dienst-ID Dienst-Host Dienst-Port ist-träge
  • Das Feld Sitzungs-ID identifiziert die Sitzung, die den oder die erforderlichen Dienste besitzt, auf eindeutige Weise. Das Feld Dienst-ID identifiziert einen mit einer Sitzung verknüpften Dienst, der mit der Sitzungs-ID identifiziert ist, auf eindeutige Weise. Die Felder Dienst-Host und Dienst-Port identifizieren den Server, auf dem ein Dienst läuft, und den Port auf dem Server, durch welchen ein Dienst kommunizieren kann. Das Feld ist-träge identifiziert die Art und Weise, in der ein Dienst gestartet werden kann. Zum Beispiel kann ist-träge spezifizieren, dass der Dienst sofort nach der Erzeugung einer Sitzung gestartet wird, oder dass der Dienst gestartet wird, wenn der Benutzer zum ersten Mal auf das System zugreift. Die Felder Dienst-ID, Dienst-Host, Dienst-Port und ist-träge können mehrfach vorkommen, wobei jedes Auftreten einen mit der durch die Sitzungs-ID identifizierte Sitzung verknüpften Dienst identifiziert.
  • Die dynamische Sitzungsaufzeichnung identifiziert die für eine Sitzung erforderlichen Dienste und diejenigen Dienste, die gegenwärtig in einer Sitzung ausgeführt werden. Die für eine Sitzung erforderlichen Dienste werden zum Beispiel von den dauerhaften Sitzungsaufzeichnungen abgerufen. Eine dynamische Sitzungsaufzeichnung kann null oder mehr Dienste (erforderliche oder andere) identifizieren, die gegenwärtig im Namen eines Benutzers ausgeführt werden.
  • Die Felder, die benutzt werden, um Informationen über einen Dienst mit einer dynamischen Sitzungsaufzeichnung zu speichern, hängen davon ab, ob der Dienst ein erforderlicher Dienst oder ein Dienst ist. Ein erforderlicher Dienst, der aktuell aktiv ist, ist auch ein aktueller Dienst. Das Format einer dynamischen Sitzungsaufzeichnung, dass die erforderlichen Dienste einer Sitzung identifiziert, ist das Gleiche wie das Format für die dauerhafte Sitzungsaufzeichnung. Das Nachfolgende identifiziert das Format für eine Aufzeichnung, die mit einem gegenwärtig ausgeführten Dienst verknüpft sind, gemäß einer Ausführungsform der Erfindung:
    Sitzungsverbindung TCPSocketfd erforderlicheDienstverbindung Dienst-ID
  • Das Feld Sitzungsverbindung identifiziert die Sitzung des Dienstes. Eine offene Verbindung, oder Pipe, wird zwischen dem Sitzungsmanager 206 und einem gegenwärtig ausgeführten Dienst in der Sitzung aufgebaut. Die offene Verbindung kann benutzt werden, um entweder den Sitzungsmanager 206 oder den Dienst, den der andere abnormal oder auf andere Weise beendet hat, zu benachrichtigen. In einer Ausführungsform der Erfindung ist die offene Verbindung eine TCP-Socket-Verbindung, die durch das Feld TCPSocketfd identifiziert wird. Es sollte jedoch klar sein, dass zur Benutzung von Ausführungsformen der Erfindung auch jede andere Form von zuverlässiger Verbindungstechnologie benutzt werden kann, die eine zuverlässige Benachrichtigung ermöglichen, dass eine Verbindung deaktiviert oder abgebrochen ist.
  • Der Dienst hat einen Identifizierer, der im Feld Dienst-ID abgelegt ist. Ein gegenwärtig laufender Dienst kann mit einem erforderlichen Dienst verbunden werden. Eine Verbindung bzw. ein Link zu einem erforderlichen Dienst wird durch angeforderte Dienstverbindung identifiziert. Wenn es keine Verbindung zu einem angeforderten Dienst gibt, ist die angeforderte Dienstverbindung Null.
  • Die dynamische Sitzungsaufzeichnung kann auch benutzt werden, um Informationen über eine Verbindung zu einem Netzwerk-Terminal (zum Beispiel das Netzwerk-Terminal 202) zu speichern. Das Folgende enthält die Felder, die die Verbindung gemäß einer Ausführungsform der Erfindung identifizieren:
    Sitzungsverbindung Status IP Adresse
  • Mehrere Sitzungen können mit einem Benutzer verknüpft sein. Das Feld Sitzungsverbindung identifiziert diejenige Sitzung, mit der ein mit dem Netzwerk-Terminal 202 verbundener Benutzer gegenwärtig verbunden ist. Die Sitzungsverbindung kann beispielsweise als ihren Wert den Wert der Sitzungs-ID haben. Das Feld Status identifiziert den Verbindungsstatus (d.h., verbunden oder nicht verbunden) des Netzwerk-Terminals 202 in der Sitzung. Das Feld IP-Adresse beinhaltet die Verbindungsnetzwerksadresse des Netzwerk-Terminals 202. Eine IP-Adresse wird in einer oder mehreren Ausführungsformen der Erfindung benutzt. Es sollte jedoch klar sein, dass alternative Verbindungstechnologien benutzt werden können, die alternative Adressierungsschemata benutzen. Zum Beispiel kann ein ATM-(Asynchronous Transfer Mode)Netzwerk einen 13-stelligen Stellenschalter-Präfix/Endpunkt-Identifizierer benutzen.
  • Diese Information kann vom Sitzungsmanager 206 benutzt werden, um eine Statusmeldung an das Netzwerk-Terminal 202 zu senden. Wenn das Netzwerk-Terminal 202 nicht innerhalb einer gewissen Zeitspanne antwortet, nimmt der Sitzungsmanager 206 an, dass das Netzwerk-Terminal 202 nicht mehr vom Benutzer benutzt wird, und sendet eine Verbindungstrennungsmeldung an jeden der Dienste in der Sitzung.
  • Andere dem Sitzungsmanager 206 bekannte Informationen beinhalten eine Liste der offenen Verbindungen (zum Beispiel Dienste mit einem offenen TCPSocketfd) zu Diensten und ein Mapping zwischen offenen Verbindungen und Sitzungen und den Diensten innerhalb einer Sitzung. Diese Informationen können zum Beispiel mit den Sitzungsaufzeichnungen zusammengestellt werden.
  • Die dem Sitzungsmanager 206 verfügbaren Informationen können benutzt werden, um eine Sitzung zu verlegen. Zum Beispiel ist es mit einem gegebenen Dienst möglich, eine Sitzung zu finden, die den Dienst und/oder die Dienste besitzt, die in der Sitzung beinhaltet sind. Weiterhin ist es möglich, eine Sitzung zu lokalisieren, die mit einem gegebenen Benutzer oder Instanz des Netzwerk-Terminals 202 verknüpft ist, unabhängig davon, ob sie zum Beispiel gegenwärtig ausgeführt wird.
  • Dienstaufnahme
  • Wenn der Sitzungsmanager 206 eine Meldung vom Authentifizierungsmanager 204 erhält, dass sich ein Benutzer mit dem Netzwerk-Terminal 202 verbunden hat, startet der Sitzungsmanager 206 diejenigen erforderlichen Dienste, die gegenwärtig nicht aktiv sind. Der Sitzungsmanager 206 benachrichtigt ferner die gegenwärtig aktiven Dienste, dass diese ihre Eingaben/Ausgaben (E/A) an das Netzwerk-Terminal 202 richten. E/A können mit einem Befehlsprotokoll erfolgen, um mit dem Netzwerk-Terminal 202 und seinen Peripherievorrichtungen zu kommunizieren (Anlage A enthält ein Beispiel eines Befehlsprotokolls gemäß einer Ausführungsform der Erfindung).
  • Um einen Dienst zu starten, greift der Sitzungsmanager 206 auf den Server, auf dem der Dienst ausgeführt werden wird, zu, um den Dienst zu starten. Zum Beispiel sendet der Sitzungsmanager 206 eine Anfrage an einen allgemein bekannten Port des Servers und durchläuft den Sitzungs-Host, Sitzungs-Port und Sitzungs-ID des Sitzungsmanagers 206. Der Server verbindet zum Netzwerk-Terminal 202, das mit dem Dienst verbunden ist, und benutzt die originäre Authentifizierung des Servers und die Erlaubnisse, um es dem Benutzer zu ermöglichen, auf den Server zuzugreifen. Zum Beispiel kann in einer UNIX-Betriebssystemumgebung ein UNIX-Dienst mit einer "CDE-Anmeldung"-Anzeige gestartet werden, welche auf einen Netzwerk-Terminal 202 angezeigt wird, um den Benutzer zu authentifizieren und sicherzustellen, dass der Benutzer es wünscht, mit dem Dienst verbunden zu werden.
  • Damit ein Sitzungsmanager 206 einen Dienst auf einem Server starten kann, werden ihm die Rechte eingeräumt, die erforderlich sind, um einen Dienst zu starten. Es kann unerwünscht sein, einem Sitzungsmanager 206 diese Rechte einzuräumen. Weiterhin können in gegenwärtigen Netzwerkumgebungen Server unter verschiedenen Betriebssystemumgebungen laufen. In diesem Fall muss dem Sitzungsmanager 206 jeder der Betriebssystemumgebungsprozeduren für den Start eines Dienstes bekannt sein.
  • Alternativ kann eine von der Sitzung unterrichtete und auf dem Server laufende Anwendung den Start vornehmen und den Dienst mit dem Sitzungsmanager 206 registrieren. In diesem Fall ist es für den Sitzungsmanager 206 nicht erforderlich, die erforderlichen Rechte zu haben. Weiterhin muss der Sitzungsmanager 206 nicht ein zentralisiertes Modell für den Start von Diensten unter mehreren Betriebssystemumgebungen implementieren. Die Verantwortung für den Start von Diensten ist den von der Sitzung unterrichteten Anwendungen überlassen, die in den verschiedenen Betriebssystemumgebungen laufen. Eine von der Sitzung unterrichtete Server-Anwendung hat das Wissen des Sitzungsmanagers 206 (zum Beispiel hat die Sitzungs-ID, den Sitzungs-Host und den Sitzungs-Port des Sitzungsmanagers 206) und seine Schnittstellen (zum Beispiel Befehlsformate).
  • Die von der Sitzung unterrichtete Server-Anwendung kann in Beantwortung einer vom Sitzungsmanager 206 empfangenen Aufforderung einen Dienst starten. Der Sitzungsmanager 206 sendet einen Startbefehl an die Server-Anwendung, die die Erlaubnis zum Start des Dienstes in der Betriebssystemumgebung des Servers besitzt. Die Server-Anwendung startet den Dienst für den Sitzungsmanager 206 und antwortet auf den Sitzungsmanager 206 mit einer gültigen Sitzungs-ID. Auf UNIX- und NT-Systemen kann zum Beispiel die Sitzungs-ID in der Betriebssystemumgebung verfügbar gemacht werden. Dienste, wie zum Beispiel Videofenster, können zum Beispiel auf diese Weise starten.
  • Alternativ kann eine von der Sitzung unterrichtete Anwendung einen Dienst kontaktieren, um seine Berechtigung in der Form einer kryptographisch unterschriebenen Autorisierung zu erhalten. Die Server-Anwendung kann die Sitzungs-ID und die unterschriebene Autorisierung an den Sitzungsmanager 206 weiterleiten. Wenn die von der Sitzung unterrichtete Anwendung den Sitzungsmanager 206 ohne eine Autorisierung aber mit einer Beschreibung des Dienstes kontaktiert, kann der Sitzungsmanager 206 vom Netzwerk-Terminal 202 eine Erlaubnis einholen, um sicherzustellen, dass der Benutzer berechtigt ist, den Dienst zu benutzen. Wenn der Benutzer positiv antwortet, wird der Sitzung der Dienst hinzugefügt.
  • Meldungen des Sitzungsmanagers
  • Der Sitzungsmanager 206 empfängt und erzeugt Meldungen, um die Dienste innerhalb einer Sitzung zu verwalten. Andere als die hier beschriebenen Techniken können benutzt werden, um Dienste zu starten. Wenn der Sitzungsmanager 206 einen Dienst startet, sendet er einen Startbefehl an den Server (oder die von der Sitzung unterrichtete Server-Anwendung). Der Sitzungsmanager 206 kann einen Startbefehl erzeugen, um erforderliche Dienste, die zum Beispiel in der Sitzungsdatenbank 202 identifiziert wurden, zu starten. Als ein weiteres Beispiel kann der Sitzungsmanager 206 einen Startbefehl senden, um einen erforderlichen Dienst, den es bestimmt (zum Beispiel über eine offene TCP-Verbindung zwischen dem Sitzungsmanager 206 und dem Dienst) und beendet hat, zu reaktivieren.
  • Der Sitzungsmanager 206 empfängt eine Verbindungsmeldung, wenn sich ein Benutzer erfolgreich über ein Netzwerk-Terminal 202 mit dem System verbunden hat. Als Antwort auf die Verbindungsmeldung verifiziert der Sitzungsmanager 206, dass alle erforderlichen Dienste gestartet sind, und startet diejenigen Dienste, die noch nicht laufen. Der Sitzungsmanager 206 sendet eine Meldung (zum Beispiel eine Verbindungsmeldung), zu den Diensten in der Sitzung, um E/A an das Netzwerk-Terminal 202 zu leiten.
  • Wenn eine Verbindungstrennungsmeldung empfangen wird, sendet der Sitzungsmanager 206 eine Verbindungstrennungsmeldung an jeden der Dienste in der Sitzung, damit diese nicht mehr E/A an das Netzwerk-Terminal 202 richten.
  • Der Sitzungsmanager 206 kann periodisch Statusmeldungen an das Netzwerk-Terminal 202 senden, um sicherzustellen, dass das Netzwerk-Terminal 202 weiterhin verbunden ist. Zum Beispiel kann der Sitzungsmanager 206 die dynamischen Sitzungsaufzeichnungen der Sitzungsdatenbank 220 untersuchen, um jede Sitzung zu identifizieren, die gegenwärtig mit einem Netzwerk-Terminal verbunden sind. Das bedeutet, dass ein Sitzungsmanager 206 das Statusfeld, das mit einem Netzwerk-Terminal in einer dynamischen Sitzungsaufzeichnung in der Sitzungsdatenbank 220 verknüpft ist, untersuchen kann. Der Sitzungsmanager 206 sendet eine Statusanfrage (zum Beispiel ein "Ping") an jedes mit einer Sitzung verbundene Netzwerk-Terminal. Wenn vom Netzwerk-Terminal 202 nicht innerhalb einer gewissen Zeitspanne (zum Beispiel 20 Sekunden) für eine bestimmte Sitzung eine Antwort erhalten wurde, nimmt der Sitzungsmanager 206 an, dass die Sitzung deaktiviert wurde, und sendet eine Verbindungstrennungsmeldung an jeden Dienst in der Sitzung und weist sie an, ihre Anzeigefunktion zu beenden.
  • Das Netzwerk-Terminal 202 beantwortet eine Statusabfrage (z.B. Ping) vom Sitzungsmanager 206 entweder mit einem Status "Karte drinnen" oder "Karte draußen". Wenn ein Status "Karte draußen" vom Netzwerk-Terminal 202 empfangen wurde, sendet der Sitzungsmanager 206 eine Verbindungstrennungsmeldung an jeden der Dienste der Sitzungen.
  • Wenn der Status "Karte drinnen" als Antwort auf eine Statusabfrage gesendet wird, gibt das Terminal 202 auch an, wie häufig die Karte in den Kartenleser 216 eingeschoben wurde, die Zahl der Sekunden seit einem Karteneinschieben, und die Karten-ID. Die Karten-ID ist zum Beispiel der Wert einer Sitzungs-ID für die Sitzung eines Benutzers. Der Sitzungsmanager 206 behält zumindest die letzte Statusinformation vom Netzwerk-Terminal 202, um die neue Statusinformation mit der vorangegangenen Statusinformation zu vergleichen. Wenn zum Beispiel die Häufigkeit des Einschiebens oder die Zahl der Sekunden für das Einschieben von der letzten Statusinformation abweicht, erachtet der Sitzungsmanager 206 die Sitzung als deaktiviert. In diesem Fall sendet der Sitzungsmanager 206 eine Verbindungstrennungsmeldung an die Dienste der Sitzung.
  • Wenn ein Dienst gestartet ist, zum Beispiel von einer Server-Anwendung, die von der Sitzung unterrichtet ist, wird eine Dienstverbindungsmeldung an den Sitzungsmanager 206 gesendet. Wenn der Dienst eine geeignete Berechtigung hat, fügt der Sitzungsmanager 206 den Dienst zur Liste der Dienste der Sitzung hinzu, und sendet eine Meldung an den Dienst, um E/A an das Netzwerk-Terminal 202 zu richten.
  • Authentifizierungsmanager
  • Der Authentifizierungsmanager ist für die Gewährleistung der Legitimität eines Benutzers verantwortlich, und für die Zuteilung eines Benutzers zu den Sitzungen. Während des Startprozesses (welcher nachfolgend im Detail beschrieben wird) findet ein Authentifizierungsaustausch statt, um den Benutzer in einer Ausführungsform der Erfindung zu authentifizieren. Eine Authentifizierung kann jeden Mechanismus beinhalten, der die Identität des Benutzers am System identifiziert. Zum Beispiel kann ein Schlüsselpasswort eingegeben werden, oder können biometrische Daten erhoben werden, um den Benutzer zu authentifizieren.
  • Die Authentifizierungsdatenbank 218 besitzt Benutzer- und Sitzungsinformationen, auf die vom Authentifizierungsmanager 204 zugegriffen werden kann. In einer Ausführungsform der Erfindung ist das Format des Datensatzes, das in der Authentifizierungsdatenbank 218 enthalten ist, wie folgt:
    Benutzer-ID Geheim PIN Sitzungs-Host Sitzungs-Port Sitzungs-ID
  • Die Felder Benutzer-ID und Geheim beinhalten die gleichen Werte, wie diejenigen, die in der Chipkarte des Benutzers abgelegt sind. Die Werte der Benutzer-ID und von Geheim werden typischerweise erhoben, wenn der Benutzer für die Systembenutzung freigeschaltet wird. In einer Ausführungsform der Erfindung enthält das Feld Geheim einen 128-Bit Wert. Das PIN-Feld ist die persönliche Identifikationsnummer (PIN), welche dem Benutzer bekannt ist, und die während der Authentifizierung vom Authentifizierungsmanager 204 abgefragt wird. Die Benutzer-ID, Geheim und PIN-Werte werden benutzt, um einen Benutzer zu authentifizieren. Die Authentifizierungsdatenbank 218 können andere Informationen, wie ein Passwort oder biometrische Daten, enthalten, die, wenn sie benutzt werden, einen Benutzer authentifizieren.
  • Das Feld Sitzungs-Host identifiziert den Rechenserviceprovider (zum Beispiel einen Server), der den Sitzungsmanager 206, der die aktuelle Sitzung des Benutzers verwaltet, ausführt. Das Feld Sitzungs-Port identifiziert den Port für die Kommunikation mit dem Sitzungsmanager 206. Das Feld Sitzungs-ID besitzt einen eindeutigen Identifizierer für den Sitzungsmanager 206. Wenn die Authentifizierung erfolgreich ist, werden die Felder Sitzungs-Host, Sitzungs-Port und Sitzungs-ID benutzt, um den Sitzungsmanager 206 vom Ort des Benutzers am Netzwerk-Terminal 202 zu benachrichtigen.
  • In einer Ausführungsform der Erfindung wird ein Authentifizierungsmechanismus benutzt, um einen Benutzer zu authentifizieren (6 zeigt ein Authentifizierungsaufforderungsarbeitsablaufdiagramm gemäß einer Ausführungsform der Erfindung). Der Authentifizierungsmanager 204 sendet eine Authentifizierungsaufforderung an das Netzwerk-Terminal 202, um die Authentizität des Benutzers zu verifizieren. Das Netzwerk-Terminal 202 bereitet eine Authentifizierungsantwort vor, und gibt sie an den Authentifizierungsmanager 204 weiter. Ist die Antwort auf die Authentifizierungsabfrage wie erwartet, ist der Benutzer für den Authentifizierungsmanager 204 verifiziert.
  • Die 5A5B stellen ein Authentifizierungsarbeitsablaufdiagramm gemäß einer Ausführungsform der Erfindung dar. Der Authentifizierungsprozess kann mehr als ein Mal wiederholt werden, bis die Authentifizierung erfolgreich ist, oder bis die Zahl der Wiederholungen, oder Runden, eine gewisse Anzahl überschreitet. Bei Schritt 502 wird ein Identifizierer, der die Zahl der Authentifizierungsrunden repräsentiert, auf einen Anfangswert von Null gesetzt. Bei Schritt 504 wird eine Zufallszahl, die als Authentifizierungsaufforderungsnummer benutzt wird, erzeugt. Bei Schritt 506 sendet der Authentifizierungsmanager 204 einen Befehl N_AUTHENTICATE an das Netzwerk-Terminal 202, ebenso wie ein Paket von Informationen für den Authentifizierungsprozess.
  • In einer Ausführungsform der Erfindung werden die folgenden Informationen zusammen mit dem Befehl N_AUTHENTICATE gesendet:
    Code Identifizierer Länge WertGröße Wert
  • Das Code-Feld identifiziert den Informationstyp, der im Informationspaket enthalten ist. Zum Beispiel besagt ein Wert "1", dass das Informationspaket eine Authentifizierungsabfrage enthält. Das Identifizierer-Feld besitzt einen Wert (zum Beispiel den Runden-Indikator) der im Schritt 502 erzeugt wurde. Das Feld Länge identifiziert die Länge des Informationspakets. Das Wert-Feld besitzt die Zufallszahl, oder den Wert der Authentifizierungsabfrage, der in Schritt 504 erzeugt wurde. WertGröße identifiziert die Größe des Wertfeldes (zum Beispiel 128 Bit).
  • Bei Schritt 508 sendet der Authentifizierungsmanager Rendering-Befehle an das Netzwerk-Terminal 202 und veranlasst den Benutzer die Benutzer-PIN einzugeben. Bei Schritt 510 wartet der Authentifizierungsmanager 204 auf eine Antwort vom Netzwerk-Terminal 202 oder auf eine Zeitüberschreitung.
  • Wenn bei Schritt 510 eine Zeitüberschreitung erfasst wurde, fährt die Verarbeitung bei Schritt 514 fort, um festzustellen, ob die maximale Anzahl von Runden überschritten wurde. Ist dies nicht der Fall, fährt die Verarbeitung bei Schritt 518 fort, um den Identifizierer um Eins weiterzuzählen und fährt bei Schritt 504 mit der Verarbeitung fort, um eine neue Authentifizierungsrunde zu beginnen. Wenn bei Schritt 514 festgestellt wird, dass die maximale Anzahl von Runden erreicht ist, wird die Verarbeitung mit Schritt 516 fortgesetzt, bei der der Authentifizierungsmanager 204 Rendering-Befehle an das Netzwerk-Terminal 202 sendet, die einen Fehler anzeigen, womit der Authentifizierungsprozess endet. Rendering-Befehle können zum Beispiel Teil eines Befehlprotokolls sein, der für die Kommunikation mit dem Netzwerk-Terminal 202 und seinen Periphervorrichtungen benutzt wird.
  • Eine Authentifizierungsroutine beinhaltet vom Authentifizierungsmanager an das Netzwerk-Terminal 202 gesendete Befehle zum Erfassen der PIN-Eingabe durch den Benutzer und das Erzeugen einer Antwort. Das Netzwerk-Terminal 202 erzeugt einen Antwortwert, der die Ausgabe einer Hashfunktion (d.h., ein Hash-Wert oder eine Authentifizierungsantwort) von einer Eingabe, einschließlich der Benutzer-ID, dem Wert des Identifizierers, der Wert von Geheim, der in der Chipkarte des Benutzers abgelegt ist und der Wert der Authentifizierungsabfrage (z.B. die in Schritt 504 erzeugte Zufallszahl).
  • Eine Hash-Funktion kann Eingaben variabler Länge akzeptieren und konvertiert sie in eine Ausgabe fester Länge (ein Hash-Wert). Ein Beispiel einer Hash-Funktion nimmt die Eingabe und gibt ein Byte wieder, das aus dem ausschließlichen Oder (XOR) aller Eingabebytes besteht. Es gibt viele andere Beispiele für Hash-Funktionen, die von Ausführungsformen der Erfindung benutzt werden können. Die Funktion hmac_md5 (RFC2104) ist ein Beispiel für eine Hash-Funktion, die in einer Ausführungsform der Erfindung benutzt wird, um eine Antwort zu erzeugen.
  • Das folgende Paketformat wird vom Netzwerk-Terminal 202 benutzt, um die Antwort gemäß einer Ausführungsform der Erfindung an den Authentifzierungsmanager 204 zu senden.
    Code Identifizierer Länge WertGröße Wert Benutzer-ID
  • Das Code-Feld ist auf den Wert "2" gesetzt, was anzeigt, dass das Informationspaket eine Authentifizierungsantwort enthält. Das Wert-Feld besitzt die Authentifizierungsantwort (zum Beispiel das Ergebnis einer Hash-Funktion). Das Feld Benutzer-ID enthält die Benutzer-ID des Benutzers.
  • Wenn der Authentifizierungsmanager 204 (bei Schritt 510) feststellt, dass er eine Antwort vom Netzwerk-Terminal 202 empfangen hat, fährt er bei Schritt 512 mit der Verarbeitung fort und überprüft, ob der Identifizierer, der vom Netzwerk-Terminal 202 zurückgegeben wurde, zu dem Identifizierer passt, der vom Authentifizierungsmanager 204 erzeugt wurde. Ist dies der Fall fährt die Ver arbeitung mit Schritt 520 fort, um die Antwort, die vom Netzwerk-Terminal 202 zurückgegeben wurde, zu untersuchen.
  • Bei Schritt 520 bestimmt der Authentifizierungsmanager 204, ob die Authentifizierungsantwort zu der vom Authentifizierungsmanager 204 erwarteten Antwort passt. Zum Beispiel kann der Authentifizierungsmanager 204 einen Hash-Wert unter Benutzung seines Identifizierers, der PIN, von Geheim und des Authentifizierungswerts erzeugen. Wenn der Hash-Wert, der vom Authentifizierungsmanager 204 erzeugt wurde, zu der Authentifizierungsantwort passt, die vom Netzwerk-Terminal 202 erzeugt wurde, ist die Authentifizierung teilweise erfolgreich. Der Authentifizierungsmanager überprüft auch, ob die Verbindungsnetzwerkadresse des Netzwerk-Terminals 202 und die Benutzer-ID des Benutzers gültig sind. Wenn die Authentifizierungsantwort, die Verbindungsnetzwerkadresse und die Benutzer-ID verifiziert sind, ist die Authentifizierung erfolgreich. Wenn nicht, hat die Authentifizierung fehlgeschlagen.
  • Wenn die Authentifizierung erfolgreich ist, fährt die Verarbeitung mit Schritt 528 fort, um einen Befehl N_AUTHENTICATE zu senden. Das Format des Befehls ist gemäß einer Ausführungsform der Erfindung wie folgt:
    Code Identifizierer Länge
  • Das Code-Feld besitzt einen Wert von "3", um anzuzeigen, dass der Benutzer erfolgreich authentifiziert wurde. Die Verarbeitung fährt mit Schritt 530 fort, um Rendering-Befehle zum Netzwerk-Terminal 202 zu senden, die anzeigen, dass der Sitzungsmanager 206 mit Benutzern einer oder mehrerer Benutzersitzungen verbunden ist. Bei Schritt 532 benachrichtigt der Authentifizierungsmanager den Sitzungsmanager 206, dass der Benutzer über das Netzwerk-Terminal 202 mit dem System verbunden ist. Der Authentifizierungsmanager 204 sendet die Verbindungsnetzwerkadresse des Netzwerk-Terminals 202 und die Sitzungs-ID des Sitzungsmanagers 206 an den Server, der den Sitzungsmanager 206 ausführt (das heißt den in dem Feld Sitzung-Host identifizierten Server der Authentifizierungsdatenbankdatensatz des Benutzers) bei Schritt 532.
  • Wenn die Authentifizierung fehlgeschlagen ist, fährt die Verarbeitung mit Schritt 522 fort, um einen Befehl N_AUTHENTICATE zu senden. Wie bei einer erfolgreichen Authentifizierung beinhaltet der Befehl N_AUTHENTICATE ein Code-Feld, das den Status des Authentifizierungsprozesses anzeigt. Ein Code-Wert von "4" wird zum Beispiel benutzt, um eine fehlgeschlagene Authentifizierung anzuzeigen. Die Verarbeitung fährt mit Schritt 524 fort, um Rendering-Befehle an das Netzwerk-Terminal 202 zu senden, die anzeigen, dass die Authentifizierung fehlgeschlagen ist, und die den Benutzer anweisen, die Chipkarte aus dem Chipkartenleser 216 zu nehmen.
  • Der Authentifizierungsprozess endet mit Schritt 526.
  • Der mit Bezug auf die 5A5B beschriebene Prozess ist ein Beispiel eines Authentifizierungsprozesses. Es sollte klar sein, dass jede andere Authentifizierungstechnik mit Ausführungsformen der Erfindung benutzt werden kann. In einer alternativen Ausführungsform wird vom Benutzer nicht verlangt, eine PIN einzugeben. Die Benutzerkarte im Kartenleser 216 ist ausreichend, um den Benutzer zu authentifizieren. Die Benutzer-ID und der Geheimwert können mit dem Identifizierer und der vom Authentifizierungsmanager 204 erhaltenen Authentifizierungsantwort hash-codiert werden, um eine Antwort auf eine Authentifizierungsabfrage vom Authentifizierungsmanager 204 zu erzeugen. Auf diese Weise kann sich ein Benutzer auf einfache Weise mit den Benutzerdiensten verbinden, indem er eine Karte mit gültigen Informationen in den Kartenleser 216 einschiebt.
  • Weiterhin sollte ersichtlich sein, dass Ausführungsformen der Erfindung benutzt werden können, bei denen keine Authentifizierung eines Benutzers durchgeführt wird. Zum Beispiel kann in einer vertrauenswürdigen oder sicheren Umgebung kein Bedarf bestehen, die Authentizität eines Benutzers zu verifizieren. Daher wird in einer Ausführungsform der Erfindung ein Benutzer mit einer Sitzung verbunden, ohne dass er zuvor durch den Sitzungsmanager 204 authentifiziert worden ist. Der Benutzer muss nur eine Identifikation (zum Beispiel eine Benutzer-ID) bereitstellen. Wenn der Benutzer eine gültige Benutzer-ID bereitstellt, wird dem Benutzer Zugang zu der Sitzung, die mit dieser Benutzer-ID verbunden ist, gewährt.
  • Wenn der Benutzer die Verbindung zum Netzwerk-Terminal 202 trennt, wird der Authentifizierungsmanager informiert, wobei dieser den Sitzungsmanager 206 von der getrennten Verbindung informiert. Zum Beispiel informiert der Kartenleser 216 das Netzwerk-Terminal 202 darüber, dass der Benutzer die Chipkarte vom Chipkartenleser 216 entfernt hat. Das Netzwerk-Terminal 202 informiert den Authentifizierungsmanager von der getrennten Verbindung. Der Authentifizierungsmanager 204 informiert den Sitzungsmanager 206 darüber, dass der Benutzer seine Verbindung zum Netzwerk-Terminal 202 getrennt hat. Der Sitzungsmanager 206 benachrichtigt jeden der Dienste in der Benutzersitzung.
  • Authentifizierungsroutine
  • Der Authentifizierungsprozess kann eine Authentifizierungsabfrage beinhalten, die vom Authentifizierungsmanager 204 ausgelöst wurde. Die 6 zeigt ein Arbeitsablaufdiagramm für eine Authentifizierungsroutine zum Handhaben einer Authentifizierungsabfrage gemäß einer Ausführungsform der Erfindung. Die Authentifizierungsroutine wird vom Netzwerk-Terminal 202 als Antwort auf eine Authentifizierungsabfrage ausgeführt, die vom Authentifizierungsmanager 204 empfangen wurde.
  • Bei Schritt 602 wird vom Benutzer die Schlüsseleingabe gelesen, bis eine Eingabe- oder Enter-Taste gedrückt wird. Die Schlüsseleingabe wird bei Schritt 604 in ASCII-Zeichen übersetzt. Bei Schritt 606 wird eine Hash-Funktion benutzt, um einen Hash-Wert zu erzeugen, oder eine Authentifizierungsantwort, durch eine Aneinanderreihung von Identifizierer, PIN, Geheim und Authentifizierungsabfragewerten. Die Authentifizierungsantwort wird bei Schritt 608 an den Authentifizierungsmanager 204 gesendet. Bei Schritt 610 erwartet das Netzwerk-Terminal 202 eine Antwort vom Authentifizierungsmanager 204, oder eine Zeitüberschreitung. Wenn eine Antwort oder eine Zeitüberschreitung stattfindet, endet die Authentifizierungsroutine bei Schritt 614.
  • Initialisierung des Netzwerk-Terminals
  • Das Netzwerk-Terminal 202 führt eine Initialisierung aus, wenn es zum ersten Mal eingeschaltet wird. Wenn kein Benutzer das Netzwerk-Terminal 202 benutzt, kann sich das Netzwerk-Terminal 202 in einem inaktiven Zustand befinden, wenn es eingeschaltet wird. Ein Benutzer kann das Netzwerk-Terminal 202 von seinem inaktiven Zustand unter Benutzung einer der hierin beschriebenen Techniken aufwecken. Es sollte klar sein, dass andere Techniken benutzt werden können, um das Netzwerk-Terminal aufzuwecken.
  • 3 zeigt ein Arbeitsablaufdiagramm für die Initialisierung des Netzwerk-Terminals 202 als Antwort auf die Einschaltoperation gemäß einer Ausführungsform der Erfindung. Bei Schritt 302 wird eine Feststellung getroffen, ob eine Anschaltoperation vorgenommen wurde. Wenn nicht, fährt die Verarbeitung fort und wartet auf eine Anschaltoperation. Bei Schritt 304 wird vom Netzwerk-Terminal 202 eine Anfrage an das Netzwerk gerichtet, um die Netzwerkverbindung zu testen. Bei Schritt 306 wird eine Feststellung getroffen, ob eine Antwort erhalten wurde. Wenn nicht, fährt die Verarbeitung mit Schritt 310 fort, um einen Fehler zu erzeugen, und fährt die Verarbeitung mit Schritt 302 fort, um eine Anschaltoperation abzuwarten.
  • Wenn bei Schritt 306 festgestellt wurde, dass eine Antwort erhalten wurde, fährt die Verarbeitung mit Schritt 308 fort und sendet eine Bestätigungs-(ACK-)meldung, und kann eine Initialisierung des Netzwerk-Terminals 202 in Schritt 402 der 4A fortgesetzt werden.
  • Die 4A4C zeigen einen Arbeitsablauf gemäß einer Ausführungsform der Erfindung für die Initialisierung des Netzwerk-Terminals 202 als Antwort auf eine Aufweckoperation. Bezug nehmend auf die 4A wartet das Netzwerk-Terminal 202 auf eine Benachrichtigung der Aufweckoperation. In einer Ausführungsform der Erfindung besteht die Aufweckoperation im Einführen einer Chipkarte des Benutzers in den Kartenleser 216.
  • Wenn festgestellt wurde, dass eine Chipkarte in den Kartenleser 216 eingeführt wurde, fährt die Verarbeitung bei Schritt 404 fort und sendet eine Anfrage, um die Kommunikationsnetzwerkadresse des Authentifizierungsmanagers 204 und des Netzwerk-Terminals 202 zu erhalten. Alternativ kann die Chipkarte des Benutzers mit der Verbindungsnetzwerkadresse vorprogrammiert werden. Das Netzwerk-Terminal 202 kann die Verbindungsnetzwerkadresse zum Beispiel über den Kartenleser 216 von der Chipkarte lesen.
  • Bei Schritt 406 erwartet das Netzwerk-Terminal 202 eine Antwort oder eine Zeitüberschreitung. Wenn es zu einer Zeitüberschreitung kommt, fährt die Verarbeitung mit Schritt 412 fort, um festzustellen, ob die maximale Anzahl von Versuchen überschritten wurde. Wenn die maximale Anzahl von Versuchen überschritten wurde, fährt die Verarbeitung mit Schritt 410 fort, um einen Fehler zu erzeugen. Wenn die maximale Anzahl von Versuchen nicht überschritten wurde, fährt die Verarbeitung mit Schritt 414 fort, um die Zahl der Versuche zu inkrementieren, und fährt die Verarbeitung mit Schritt 404 fort, um erneut eine Anfrage nach der Verbindungsnetzwerkadresse zu senden.
  • Wenn eine Antwort auf die Anfrage erhalten wurde, fährt die Verarbeitung mit Schritt 408 fort und sendet einen ACK. Die Verarbeitung fährt mit Schritt 416 von 4B fort. Bei Schritt 416 sendet das Netzwerk-Terminal 202 eine Startanfrage an den Authentifizierungsmanager 204. Bei Schritt 418 wird eine Wiederholungszeit gesetzt, während der das Netzwerk-Terminal 202 auf eine Antwort auf die Startanfrage wartet. Bei Schritt 420 wird eine Variable gesetzt, die anzeigt, dass das Netzwerk-Terminal 220 auf eine Antwort auf die Startanfrage wartet. Bei Schritt 422 wartet das Netzwerk-Terminal 202 auf eine Antwort auf die Startanfrage.
  • Wenn festgestellt wurde, dass keine Antwort erhalten wurde, fährt die Verarbeitung mit Schritt 424 fort, um festzustellen, ob die Wiederholungszeit überschritten wurde. Ist dies nicht der Fall, fährt die Verarbeitung mit Schritt 422 fort, um auf eine Antwort zu warten. Wenn die Wiederholungszeit überschritten wurde, fährt die Verarbeitung mit Schritt 426 fort, um festzustellen, ob die maximale Anzahl von Versuchen überschritten wurde. Wenn nicht, fährt die Verarbeitung mit Schritt 428 fort, um einen Fehler zu erzeugen, und um zu Schritt 416 zurückzukehren, um die Startanfrage erneut zu senden. Ist dies nicht der Fall, fährt die Verarbeitung mit Schritt 430 fort, erhöht die Anzahl der Versuche und setzt die Wiederholungszeit zurück. Bei Schritt 432 wird die Startanfrage erneut gesendet und fährt die Verarbeitung mit Schritt 444 fort, um festzustellen, ob die Karte vom Kartenleser 216 entfernt wurde.
  • Wenn bei Schritt 422 festgestellt wurde, dass eine Antwort erhalten wurde, fährt die Verarbeitung mit Schritt 434 der 4C fort. Bei Schritt 434 untersucht das Netzwerk-Terminal 202 die anfänglich in Schritt 420 gesetzte Variable um festzustellen, ob es auf eine Antwort auf die Startanfrage wartet. Ist dies der Fall, fährt die Verarbeitung mit Schritt 436 fort, um festzustellen, ob die Antwort eine Authentifizierungsmeldung ist. Ist dies nicht der Fall, fährt die Verarbeitung mit Schritt 424 fort, um die Startanfrage zu wiederholen, wenn die maximale Anzahl der Versuche noch nicht überschritten wurde. Wenn bei Schritt 436 festgestellt wurde, dass eine Authentifizierungsmeldung erhalten wurde, fährt die Verarbeitung mit Schritt 438 fort, um die Variable Waiting_For_Startup auf Nein (das heißt "N") zu setzen. Die Verarbeitung fährt bei Schritt 440 fort, um die Authertifizierungsabfrage bei den Schritten 440 und 442 zu verarbeiten. Die Authentifizierungsabfrage kann zum Beispiel wie oben mit Bezug auf die 5A5B und 6 beschrieben durchgeführt werden.
  • Wenn bei Schritt 434 festgestellt wurde, dass das Netzwerk-Terminal 202 nicht auf eine Antwort auf die Startanfrage wartet, fährt die Verarbeitung mit den Schritten 440 und 442 fort, um die Meldung zu behandeln (zum Beispiel Rendering-Befehle, um vom Dienst 234 erzeugte Ausgaben graphisch darzustellen).
  • Bei Schritt 444 wird eine Feststellung getroffen, ob der Benutzer die Chipkarte vom Chipkartenleser 216 entnommen hat. Wenn der Benutzer die Karte dem Kartenleser 216 entnimmt, sendet das Netzwerk-Terminal 202 bei Schritt 448 eine Verbindungstrennungsmeldung an den Authentifizierungsmanager 204. Das Netzwerk-Terminal 202 wartet auf eine Bestätigungs-(ACK-)meldung vom Authentifizierungsmanager 204. Wenn die ACK-Meldung erhalten wurde, löscht das Netzwerk-Terminal 202 bei Schritt 450 den Bildschirm und kehrt bei Schritt 402 zurück, um auf einen anderen Benutzer zu warten, damit dieser eine Chipkarte in den Kartenleser 216 einführt.
  • Wenn bei Schritt 444 festgestellt wurde, dass der Benutzer die Chipkarte nicht vom Kartenleser 216 entnommen hat, fährt die Verarbeitung mit Schritt 446 fort, um festzustellen, ob das Netzwerk-Terminal auf eine Antwort auf seine Startanfrage wartet. Ist dies der Fall, fährt die Verarbeitung mit Schritt 422 fort, um festzustellen, ob eine Antwort erhalten wurde. Wenn das Netzwerk-Terminal nicht auf eine Antwort von der Startanfrage wartet, fährt die Verarbeitung mit den Schritten 440 und 442 fort, um beliebige Meldungen, die an das Netzwerk-Terminal 202 gesendet wurden, zu verarbeiten.
  • Meldungsformat
  • In einer Ausführungsform der Erfindung wird eine Verbindung zum Netzwerk-Terminal 202 über einen UDP-(User Datagram Protocol)Port eingerichtet. Dies bedeutet, dass Pakete über eine UDP-Verbindung gesendet werden und an einem UDP-Port empfangen werden. Der Ziel-UDP-Port identifiziert auf eindeutige Weise die Verbindung. Die Paketlänge und die Prüfsummeninformation werden im UDP-Header mitgeliefert. Die Puffergröße passt in eine Ethernet-MTU (Maximum Transfer Unit) mit IP/UDP-Headern. Daten werden in einer Netzwerk-Byteordung (big-endian) gesendet.
  • Es sollte klar sein, dass andere Protokolle anstelle von UDP benutzt werden können. Zum Beispiel können Protokolle wie ein ATM, AAL5 (AAL oder ATM Adaptionslayer) benutzt werden.
  • Zusammenfassend sind ein Verfahren und eine Vorrichtung für das Sitzungsmanagement und die Benutzerauthentifizierung beschrieben. Besondere Ausführungsformen, die hierin beschrieben sind, dienen nur Veranschaulichungszwecken und sollen nicht die hier vorgestellte Erfindung beschränken. Die Erfindung wird durch die Ansprüche definiert und durch den vollen Umfang ihrer Äquivalente.
  • Anlage A
  • Beispiel für ein Befehlsprotokoll Renderingt-Befehle
  • Kabelprotokoll-Befehlsformate
  • Alle Daten werden über das Netzwerk in einer Netzwerk-Byteordnung (big-endian) gesendet, und Bitfelder werden von MSB in LSB gepackt.
  • Das Basis-Rendering-Befehlsformat ist:
  • Figure 00270001
  • Figure 00280001
  • Figure 00290001
  • Die Sequenznummer wird für jeden Befehl inkrementiert. Sequenznummern können nicht alle Null sein, ausgenommen für einen EPOCH-ändernden Flush-Befehl, nachfolgend beschrieben. Rechtecke können nicht umgebrochen werden. Das heißt x + Breite < 0x10000 und y + Höhe < 0x10000.
  • Ein zusätzlicher Informationsbefehl wird in einem anderen Format definiert:
  • Figure 00290002
  • Die Sequenznummer eines Flush-Befehls ist der gleiche, wie die Sequenznummer des vorangegangenen Befehls, mit der Ausnahme von EPOCH-Änderungen (siehe die nachfolgende Beschreibung). Das bedeutet, dass Sequenznummern nur inkrementiert werden, wenn es Pixeländerungen oder EPOCH-Änderungen gibt.
  • Befehlsbeschreibungen
    • Set: Setzt das Rechteck definiert durch <x, y> <Breite, Höhe> auf die nachfolgenden Pixelwerte. Es gibt für jeden Pixel in der Region einen Pixelwert. Die Anordnung erfolgt in Zeilen; das heißt es gibt eine "Breite" – Pixelwerte für Pixel bei <x, y> bis <x + Breite – 1, y> gefolgt durch Pixel bei <x, y + 1> bis <x + Breite – 1, y + 1>, etc. <0,0> beschreibt die obere linke Ecke.
    • Fill: Setzt alle Pixel im Rechteck definiert durch <x, y> <Breite, Höhe> auf den einzigen 32-Bit Wert.
    • Glyph: Der 32-Bit Wert wird am Pixelort entsprechend eines jeden Bits im Bitmap platziert, Positionen mit Null-Bit Werten werden nicht verändert, Das Bitmap wird in Zeilen ausgelegt (y, y + 1, ...), unter Benutzung von MSB bis LSB in jedem Byte.
    • Copy: Kopiert das Rechteck definiert durch <von_x von_y> <Breite, Höhe> auf das durch <x, y> <Breite, Höhe> definierte Rechteck. Der Client miss sicherstellen, dass überlappende Regionen korrekt kopiert werden (siehe Solaris bstring (3)).
    • Bilevel: Die zwei 32-Bit Werte C0 und C1 werden an dem Pixelort platziert, korrespondierend mit jeder 0 und einem Bit, entsprechend im Bitmap. Das Bitmap ist in Zeilen ausgelegt (y, y + 1, ...), unter Benutzung von MSB bis LSB in jedem Byte.
    • Set24: Setzt das durch <x, y> definierte Rechteck <Breite, Höhe> auf die nachfolgenden Pixelwerte. Die Pixelwerte sind gepackt, so dass es vier Pixel gibt, definiert durch drei 32-Bit Werte, das heißt: <bgrb, grbg, rbgr>. Wenn die Breite kein Vielfaches von 4 ist, ist das Ende gepackt und dasselbe wie oben mit den verbleibenden Werten und auf den nächsten 32-Bit Wert aufgefüllt. Es gibt einen Pixelwert für jeden Pixel in der Region. Das Layout ist in Zeilen; das heißt es gibt "Breite"-Pixelwerte für Pixel bei <x, y> bis <x + Breite – 1, y> in ((3 – Breite + 3 > : 4 > 32-Bit Worte gefolgt von Pixeln bei <x, y + 1> bis <x – Breite – 1, y + 1>, etc. <0,0> beschreibt die obere linke Ecke.
    • Set YUV Image: Setzt das durch <x, y> <Breite, Höhe> definierte Rechteck auf die nachfolgenden Pixelwerte. Das Bild im CCIR/ITU.BT-501 Y'CbCr-(oder YUV-)Format mit Source_W x Source H_Pixeln wird nach RGB decodiert. Die Chroma-Elemente müssen in der horizontalen und/oder vertikalen Richtung spezifiziert unterabgetastet werden und müssen vor ihrer Transformation überabgetastet werden. Die Werte von Chroma_Sub_X und Chroma_Sub_Y (X_Subsample und entsprechend Y_Subsample) werden wie folgt codiert: 0 – keine Chroma-Werte; monochromes Bild. 1 – unterabgetastet mit 1 (das heißt kein Unterabtasten) 2 – Unterabtasten mit Faktor 2 3 – unterabgetastet mit Faktor 4 4–7 – undefiniert/reserviert LUMA_Encoding-Werte sind: 0 – y (LUMA) spezifiziert als 8-Bit Daten ohne Vorzeichen 1 – y (LUMA) besteht aus 4-Bit quantisierten DPCM-Werten (siehe nachfolgend) 2, 3 – undefiniert/reserviert RFU ist für den zukünftigen Gebrauch reserviert und muss Null sein. Nach der Decodierung wird das RGB-Bild, sofern erforderlich, auf Breite x Höhe Pixel hochskaliert. Das sich ergebende Bild wird am Ort <x, y> angezeigt. Beachte: Wenn sowohl CHROMA_Sub_X und CHROMA_Sub_Y Null sind ist das Bild monochrom (nur LUMA) und keine U- oder V-Daten liegen vor. Es ist unzulässig, einen Satz auf Null zu haben und den anderen auf nicht Null. Die Komponentenordnung ist Y (oder CCIR-601Y'), U (CCIR-601Cb), und dann V (CCUR-601Cr).
    • Set Cursor: Dieser Befehl bestimmt das Erscheinungsbild des Cursors auf dem lokalen Display (bewegt und angewiesen durch Pointer [0]). Der Cursor ist maximal ein 64 × 64 Block, kann aber jede Größe kleiner als diese haben. Wenn der Maskenwert für einen bestimmten Pixel „1" ist, wird der entsprechende Cursor-Pixel angezeigt; wenn die Maske "0" ist, ist der Cursor an dieser Stelle transparent. Wenn die Maske "1" ist, so ist der Pixelwert "c0" wenn der Wert "0" ist, und "c1" wenn der Wert "1" ist. Wenn die Maske "0" ist, sollte der Pixelwert ebenfalls Null sein. Eine Maske von "0" und ein Pixelwert von 1 wird für die zukünftige Erweiterung reserviert. Breite und Höhe können "0" sein, was anzeigt, dass kein Cursor gezeichnet wird (entsprechend einer Maske von ausschließlich Nullen). Das Verfolgen des Pointers erfolgt wie üblich kontinuierlich. X und Y bezeichnet den "Hotspot" für den Cursor; zum Beispiel auf welchem Pixel des Cursorbilds Ereignisse bzw. events berichtet werden sollen. Dies dient primär dem Stoppen des Cursors an den Rändern der Anzeigevorrichtung. X (0, Breite), Y (0, Höhe).
    • Set Pointer: Setzt den Ort des Pointers. Pointer (0) kann üblicherweise gesetzt werden (durch die Maus oder einen Touch Screen) und ist ein 2D-Anzeigecursor. Dieser Befehl wird für Anwendungen bereitgestellt, die darauf bestehen, ihren Pointer zu setzen, oder für Anwendungen, die relative Pointer benötigen (zum Beispiel zum Rücksetzen des Cursors auf seine vorherige Position). Als solches gibt es einige wenige Einschränkungen: Das Setzten des Pointers kann überhaupt nicht funktionieren (zum Beispiel ein Joystick). Der Pointer-Wert kann willkürlich gekappt werden, um die Pointer-Vorrichtung oder den Bildschirm anzupassen. Der Benutzer kann fortfahren, den Pointer zu bewegen, nachdem er gesetzt wurde, aber es wird berichtet, dass eine "Pointer State"-Statusmeldung benutzt wird. Das Verhalten des Zurücksetzens des Pointers für einen pseudo-relativen Modus kann verschiedene Verhaltensweisen mit unterschiedlichen Vorrichtungen verursachen; zum Beispiel ein Touch Screen ist nur setzbar, wenn der Benutzer nicht ein "Dragging" durchführt. Es wird Pointern erlaubt bis zu sechs Dimensionen zu haben. Die Zahl der Dimensionen und die Größe des Befehls werden durch die DIM-Bits gesetzt. Alle Pointer-Werte haben Vorzeichen, Zweierkomplement.
    • Set Key Locks: Dieser Befehl bestimmt die Sperrwerte für eine Tastatur mit <INDEX>. Tastatursperren entsprechen allgemein Lichtern der Tastatur, die durch Software kontrollierbar sind. Wenn eine Sperrenbedingung angezeigt werden soll, sollte das Bit in der Maske gesetzt werden, ansonsten sollte das Bit auf Null gesetzt werden. Da einige Tastaturen die Sperrung lokal implementieren (zum Beispiel mechanisch) kann das Setzen einer Sperre keinen Effekt haben. Tasten der Tastatur sollten immer von dem Zustand aus interpretiert werden, der von der Tastatur berichtet wird. Auf der anderen Seite wird von einem Host erwartet, einen Befehl „Set Key Lock" auszugeben, wenn er einen Tastencode für die Tastatursperre empfangen hat, wenn es das ist, was die Schnittstelle vorgibt, weil sowohl normale Tastaturen und auch das Terminal nicht versuchen, die Sperrung normal lokal zu handhaben. Dies liegt daran, dass das Terminal die Tastatur oder die gewünschte Semantik der Benutzerschnittstelle nicht versteht. Das Bitmap für die Tastensperrung resultiert von der USB-Klassendefinition für bootfähige Tastaturen: 0x01 Num Lock 0x02 Caps Lock 0x04 Scroll Lock 0x08 Compose 0x10 Kana Alle anderen Bits sind reserviert – ignoriert beim Lesen, Null beim Setzen.
    • Damage Repair: Dies informiert den Client, dass alle Schadensmeldungen für die Sequenznummer SEQ in EPOCH und früher verarbeitet wurden und dass Reperaturdaten gesendet wurden (siehe den Befehl Damage Back-Channel). PAD muss Null sein. X, Y, Breite sowie Höhe müssen Null sein.
    • Play Audio: Dies spielt eine 48 kHz Audioprobe, und kann in einen Graphikbefehl-Stream integriert sein. Eine unbegrenzte Zahl von Datenströmen können vom Terminal empfangen werden, und dies auf der Basis, dass die zuerst eingetroffenen zuerst bedient werden. Datenströme werden nach Bedarf alloziert und werden zerlegt, wenn es zu einem Pufferunterlauf kommt (es gibt keine Daten, die anzuzeigen wären, wenn ihre Zeit gekommen ist – teilweise empfangene Puffer werden fehlerverdeckt und abgespielt). Das Terminal korrigiert eine eventuelle Drift in der Zeitbasis. Daten werden mit einem Interleave gesendet, um die Netzwerk-Fehlerverdeckung zu erleichtern. Eine abgetastete Sequenz wird in eine Interleave-Größe aufgespalten und es werden höchstens 1 + (Sequenzgröße)/(Interleave-Größe) Proben pro Paket ausgegeben. Die Proben werden wie folgt ausgewählt:
      Figure 00330001
      Figure 00340001
      Beachte, dass die Ordnung, in der die Pakete gesendet werden, zufällig sein kann (und wahrscheinlich sollten). Zum Beispiel können für einen Interleave von 3 und einer Sequenzgröße von 8 die folgenden drei Pakete gesendet werden:
      Figure 00340002
      Die Sequenzen sind nummeriert, so dass das Terminal weiß, wann eine Fehlerverdeckung vorgenommen werden soll und eine Probensequenz ausgegeben werden soll. Proben haben eine Frequenz von 48 kHz, sind 16 Bit linear, und können bis zu 16 Kanäle haben. Zum Beispiel würde eine Probe mit fünf Kanälen 10 aufeinander folgende Bytes einnehmen. Es gibt keine Definition für die Zahl der durch das Terminal unterstützten Audiokanäle, und auch keinen Weg, um dies herauszufinden, aber es können bis zu 16 Kanäle gleichzeitig gesendet werden. Da die Zahl der gesendeten Kanäle, von der Zahl, die das Terminal unterstützt, verschieden sein kann, wird das Konzept eines Standard-Mix für die ersten acht Kanäle eingeführt. Diese kann durch Setzen des "Mix"-Feldes deaktiviert werden, was garantiert, dass gewisse indizierte Kanäle nicht zusammengemischt werden. Die letzten acht Kanäle werden in dem auf die gleiche Art und Weise wie die ersten acht Kanäle gemischt, so dass ein Ton gehört werden kann. Wenn es genügend Kanäle gibt, hängen die Ergebnisse vom Terminal-Setup ab. Die standardmäßig zugewiesenen Kanäle sind wie folgt:
      Figure 00350001
      (l = links, r = rechts, r(Ir) = Nachbar (links, rechts), sw = Subwoofer, cf = Center Fill, c(Ir) = Mitte (links, rechts), oben = Mitte – Mitte) Wenn es zum Beispiel zwei Lautsprecher gibt und mit einem Kanal mit aktiviertem Standard-Mix gesendet wird, wird der eine Kanal sowohl zum linken als auch zum rechten Lautsprecher gesendet. Umgekehrt, wenn dem gleichen Terminal sechs Kanäle gesendet werden, die Kanäle 0, 2, 4, 5 werden gemischt und an den linken Lautsprecher gesendet, und die Kanäle 1, 3, 4, 5 werden gemischt und an den rechten Lautsprecher gesendet. Die Terminal-Lautsprecher werden in der gleichen Art und Weise angeordnet. Die volle Mischmatrix ist in der vollen Spezifikation verfügbar.
    • Flush: Es kann für einen Zeitraum nach diesem Befehl möglicherweise keine Befehle im Anzeigedatenstrom geben; daher ist es für Clients anzuraten, alle noch nicht durchgeführten Renderings an den Bildschirm auszugeben. Das Feld EPOCH stellt 32 zusätzliche Bits höherer Ordnung für die Sequenznummern bereit. FILL besteht aus 16 Bytes, die alle auf 0xFF gesetzt werden. Dieser Befehl stellt eine Gelegenheit bereit, Datenströme nach einem Signalabfall zu resynchronisieren. Die Sequenznummer eines Flush-Befehls ist normalerweise der gleiche, wie der letzte Nicht-Flush-Befehl. Wenn jedoch ein EPOCH erschöpft ist (das heißt, die Sequenznummer des letzten Befehls ist 0xFFFFFF), wird ein Flush-Befehl mit einer Sequenznummer von Null und einer neuen EPOCH-Nummer (inkrementiert um 1) gesendet.
  • Rückkanalbefehle Kabelprotokoll-Statusmeldungsformate
  • Das Basis-Statusmeldungsformat ist wie folgt:
  • Figure 00360001
  • Figure 00370001
  • Statusmeldungsbeschreibungen
    • Keyboard State: Berichtet den Status einer Tastatur mit <INDEX>. Der Ländercode ist derjenige von der Definition der USB-Geräteklassen für HIDs, Abschnitt 6.2. Die Sperren sind von der USB-Klassendefinition für bootfähige Tastaturen: 0x01 Num Lock 0x02 Caps Lock 0x04 Scroll Lock 0x08 Compose 0x10 Kana Der Befehl 'Set Key Locks' kann benutzt werden, um diese Sperren zurückzusetzten, und sollten benutzt werden, wenn ein Sperrenschlüssel vom Host entdeckt wurde, da die Tastaturen allgemein nicht den Sperrstatus lokal behandeln können, und das Terminal sicherlich auch nicht. Andere als die spezifizierten Bits sind reserviert und sollten ignoriert werden. Beim Setzen sollten sie alle auf Null gesetzt werden. Die Modifizierer-Bits sind alle von der USB-Klassendefinition für bootfähige Tastaturen und wie folgt: 0x01 Left Control 0x02 Left Shift 0x04 Left Alt 0x08 Left GUI 0x10 Right Control 0x20 Right Shift 0x40 Right Alt 0x80 Right GUI Es gibt stets genügend Platz für sechs Tasten-Scancodes. Alle Tasten (die nicht Modifizierer sind), die gedrückt werden, werden auch berichtet, bis zu sechs Tasten. Dies stellt die Fähigkeiten eines einfachen Roll-Over und des chording bereit. Die Scancodes sind von der USB-Klassendefinition für bootfähige Tastaturen. Von besonderer Bedeutung ist der Code 0x00, der kein Ereignis im Schlitz anzeigt, und 0x01 in allen Schlitzten deutet an, dass mehr als acht Tasten gedrückt wurden. Modifizierer werden weiterhin in diesem Zustand berichtet. Nachdem weniger als neun Tasten gedrückt wurden, wird das normale Berichten aufgenommen. Die Berichtreihenfolge ist willkürlich und reflektiert nicht die Reihenfolge der Ereignisse.
    • Pointer State: Berichtet den Zustand des Pointers mit <INDEX>. DIM zeigt die Zahl der berichteten Dimensionen an: 1, 2, 3, oder 6. Die Schaltflächen sind von der USB-Klassendefinition für bootfähige Tasturen, das Bit 0 ist die primäre Schaltfläche (links), und die Zahlen nehmen von links nach rechts zu. Die berichteten Werte sind alle Absolutwerte und haben Vorzeichen, Zweierkomplement.
    • Active Region: Zeigt das Gebiet des logischen Frame Buffers an der von newt zurückbehalten wird. Insbesondere ist dieses Gebiet von der "FROM"-Region des Copy-Rendering-Befehls, der erfolgreich spezifiziert sein kann. Dieser Bereich kann sich bei einem gegebenen Client über die Zeit ändern, zum Beispiel wegen des Stils des PAD-End-Scan der Schnittstelle in einer handbetätigten Vorrichtung. Auch können verschiedene Client-Vorrichtungen unterschiedliche aktive Bereiche melden.
    • Damage: Zeigt an, dass stromabwärts gerichtete (Rendering-)Befehle mit den Sequenznummern SEQ_L usw. bis einschließlich der Sequenznummer SEQ_B in EPOCH nicht durch den Client vom Server empfangen wurden. PAD0 und PAD1 müssen Null sein. Der Client wird weiterhin einen Schaden melden, bis die Nachricht Damage Re pair für die betroffene Sequenznummer empfangen wird. Wenn SEQ_L Null ist, muss der gesamte aktuelle Bildschirm gesendet werden. Nachdem eine Schadensmeldung für eine gegebene Sequenznummer gesendet wurde, wird für vorangegangene Sequenznummern kein neuer Schaden gemeldet. Es ist jedoch erlaubt, zwei oder mehr Bereiche zusammenfallen zu lassen, um Platz in späteren Statuspaketen zu sparen.
  • DPCM-YUV-Beschreibung
  • Eine weitere Kompression von YUV-Daten ist mit der LUMA_Encoding von 1 möglich.
  • LUMA-Daten werden wie folgt für jede Zeile codiert:
  • Figure 00390001
  • LUMA-Daten sind wie folgt codiert:
  • Figure 00390002
  • Clamp ist eine Clamping-Tabelle; clamp[i] ist:
    0 if i < 0;
    255 if i > 255;
    i otherwise.
  • Der benutzte Quantisierer ist:
  • Figure 00400001

Claims (16)

  1. Verfahren zum Verwalten von Sessions (208) in einem Computersystem, das aufweist: Beibehalten von Informationen für eine Session, die mit einem Benutzer verknüpft ist, Initiieren von zumindest einem Dienst (230) in der Session bzw. Sitzung, wobei der zumindest eine Dienst ausgeführt werden kann, während der Benutzer von dem System getrennt ist und Mitteilen dem zumindest einen Dienst, wenn der Benutzer sich mit einem Human Interface Device (202) des Computersystems verbindet und wenn sich der Benutzer von dem Human Interface Device trennt, wobei das Human Interface Device in der Lage ist, eine Ausgabe von dem zumindest einem Dienst zu empfangen und eine Eingabe zu dem zumindest einen Dienst zu übertragen, wobei der zumindest eins Dienst seinen Ausgang zu dem Human Interface Device sendet, während der Benutzer mit dem Human Interface Device verbunden ist, und das Senden des Ausgangs zu dem Human Interface Device während der Ausführung unterbricht, wenn der Benutzer von dem Human Interface Device getrennt wird.
  2. Verfahren nach Anspruch 1, bei dem die Information eine Identifikation des zumindest einen Dienstes aufweist.
  3. Verfahren nach Anspruch 2, bei dem die Information identifiziert, ob der zumindest eine Dienst aktiv ist und ob der zumindest eine Dienst ein notwendiger Dienst dieser Sitzung ist.
  4. Verfahren nach Anspruch 3, bei dem der zumindest eine Dienst initiiert wird, sobald der Benutzer mit dem System verbunden ist, wenn der zumindest eine Dienst ein notwendiger Dienst ist.
  5. Verfahren nach Anspruch 1, wobei die Information eine Benutzeridentifikations- und Authentifizierungsinformation aufweist.
  6. Verfahren nach einem der vorherigen Ansprüche, das weiterhin aufweist: Authentifizieren des Benutzers unter Verwendung der Information.
  7. System, das aufweist: einen Dienst (230), der in einem Computersystem ausführbar ist, wobei der Dienst mit einer Sitzung bzw. Session verknüpft ist und ausgeführt werden kann, während ein Benutzer von dem System getrennt ist, ein Netzwerkterminal (202), das in der Lage ist, einen Ausgang von dem Dienst zu empfangen und eine Eingabe zu dem Dienst zu übertragen und einen Sitzungsmanager (208), der konfiguriert ist, so daß er die Information für die Sitzung, die mit einem Benutzer verknüpft ist, beibehält und dem Dienst mitteilt, wenn der Benutzer mit dem Netzwerkterminal verbunden ist und wenn der Benutzer von dem Netzwerkterminal getrennt ist, wobei der Dienst konfiguriert ist, daß er eine Ausgabe zu dem Netzwerkterminal sendet, wenn der Benutzer mit dem Netzwerkterminal verbunden ist, und wobei der Dienst derart konfiguriert ist, daß, wenn der Benutzer von dem Netzwerkterminal getrennt ist, das Senden der Ausgabe zu dem Netzwerkterminal während der Ausführung unterbrochen wird
  8. System nach Anspruch 7, das weiterhin aufweist: einen Authentifizierungsmanager (204), der derart konfiguriert ist, daß er den Benutzer des Netzwerkterminals bestätigt bzw. validiert.
  9. System nach Anspruch 8, bei dem der Authentifizierungsmanager konfiguriert ist, um dem Sitzungsmanager mitzuteilen, wenn ein gültiger Benutzer mit dem Netzwerkterminal verbunden ist.
  10. System nach einem der Ansprüche 7 bis 9, bei der Sitzungsmanager konfiguriert ist, um eine Abfrage zu dem Netzwerkterminal zu senden, um zu bestimmen, ob der Benutzer mit dem Netzwerkterminal verbunden ist.
  11. Computerprogrammprodukt, das aufweist: ein computerbenutzbares Medium mit einem computerlesbaren Programmcode, der hierauf verkörpert ist, für die Sitzungsverwaltung und die Authentifizierung, das aufweist: einen computerlesbaren Programmcode, der konfiguriert ist, so daß er veranlaßt, daß ein Computer die Information für eine Sitzung (208), die mit einem Benutzer verknüpft ist, beibehält, computerlesbaren Programmcode, der derart konfiguriert ist, daß er veranlaßt, daß ein Computer zumindest einen Dienst (230) in der Sitzung initiiert, wobei der zumindest eine Dienst ausgeführt werden kann, während der Benutzer von dem System getrennt ist, computerlesbarer Programmcode, der derart konfiguriert ist, daß er veranlaßt, daß ein Computer den zumindest einen Dienst mitteilt, wenn der Benutzer sich mit einem Human Interface Device (202) des Computersystems verbindet, und wenn der Benutzer sich von dem Human Interface Device trennt, wobei das Human Interface Device in der Lage ist, eine Ausgabe von dem zumindest einem Dienst zu empfangen und eine Eingabe zu dem zumindest einem Dienst zu übertragen, und computerlesbarerer Programmcode, der derart konfiguriert ist, daß der Computer veranlaßt, eine Ausgabe des Dienstes zu der Human Interface Device zu senden, während der Benutzer mit der Human Interface Device verbunden ist, und das Übersenden der Ausgabe zu dem Human Interface Device während der Ausführung unterbricht, wenn der Benutzer von dem Human Interface Device getrennt ist.
  12. Computerprogrammprodukt nach Anspruch 11, wobei die Information eine Identifikation von zumindest einem Dienst aufweist.
  13. Computerprogrammprodukt nach Anspruch 12, bei dem die Information identifiziert, ob der zumindest eine Dienst aktiv ist, und ob der zumindest eine Dienst ein für die Sitzung notwendiger Dienst ist.
  14. Computerprogrammprodukt nach Anspruch 13, wobei der zumindest eine Dienst mit der Verbindung des Benutzers mit dem System initiiert wird, der zumindest eine Dienst ein notwendiger Dienst ist.
  15. Computerprogrammprodukt nach Anspruch 11, bei dem die Information eine Benutzeridentifikations- und Authentifizierungsinformation aufweist.
  16. Computerprogrammprodukt nach einem der Ansprüche 11 bis 15, das weiterhin aufweist: einen computerlesbaren Programmcode, der derart konfiguriert ist, daß er einen Computer dazu bringt, den Benutzer unter Verwendung der besagten Information zu authentifizieren.
DE69925996T 1998-04-20 1999-04-20 Verfahren und vorrichtung zur sitzungsverwaltung und benutzerauthentifizierung Expired - Fee Related DE69925996T2 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US09/063,339 US6223289B1 (en) 1998-04-20 1998-04-20 Method and apparatus for session management and user authentication
US63339 1998-04-20
PCT/US1999/008665 WO1999054803A2 (en) 1998-04-20 1999-04-20 Method and apparatus for session management and user authentication

Publications (2)

Publication Number Publication Date
DE69925996D1 DE69925996D1 (de) 2005-08-04
DE69925996T2 true DE69925996T2 (de) 2006-05-04

Family

ID=22048533

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69925996T Expired - Fee Related DE69925996T2 (de) 1998-04-20 1999-04-20 Verfahren und vorrichtung zur sitzungsverwaltung und benutzerauthentifizierung

Country Status (11)

Country Link
US (1) US6223289B1 (de)
EP (1) EP1074136B1 (de)
JP (2) JP2002512394A (de)
KR (1) KR100597085B1 (de)
CN (1) CN1255977C (de)
AT (1) ATE298960T1 (de)
AU (1) AU748916B2 (de)
CA (1) CA2329034A1 (de)
DE (1) DE69925996T2 (de)
HK (1) HK1035457A1 (de)
WO (1) WO1999054803A2 (de)

Families Citing this family (112)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6484174B1 (en) * 1998-04-20 2002-11-19 Sun Microsystems, Inc. Method and apparatus for session management and user authentication
KR100382851B1 (ko) * 1999-03-31 2003-05-09 인터내셔널 비지네스 머신즈 코포레이션 분산형 데이터 처리 시스템에서 클라이언트 컴퓨터를관리하기 위한 방법 및 장치
US6727884B1 (en) 1999-04-06 2004-04-27 Microsoft Corporation System and method for mapping input device controls to software actions
US6965368B1 (en) * 1999-04-06 2005-11-15 Microsoft Corporation Game control device having genre data
US7116310B1 (en) * 1999-04-06 2006-10-03 Microsoft Corporation Application programming interface that maps input device controls to software actions
US6615264B1 (en) * 1999-04-09 2003-09-02 Sun Microsystems, Inc. Method and apparatus for remotely administered authentication and access control
US6895588B1 (en) * 1999-04-09 2005-05-17 Sun Microsystems, Inc. Remote device access over a network
US6901435B1 (en) * 1999-06-17 2005-05-31 Bmc Software, Inc. GUI interpretation technology for client/server environment
US9191443B2 (en) * 1999-12-02 2015-11-17 Western Digital Technologies, Inc. Managed peer-to-peer applications, systems and methods for distributed data access and storage
US8688797B2 (en) * 1999-12-02 2014-04-01 Western Digital Technologies, Inc. Managed peer-to-peer applications, systems and methods for distributed data access and storage
US7120692B2 (en) * 1999-12-02 2006-10-10 Senvid, Inc. Access and control system for network-enabled devices
US7917628B2 (en) * 1999-12-02 2011-03-29 Western Digital Technologies, Inc. Managed peer-to-peer applications, systems and methods for distributed data access and storage
US8793374B2 (en) * 1999-12-02 2014-07-29 Western Digital Technologies, Inc. Managed peer-to-peer applications, systems and methods for distributed data access and storage
US7934251B2 (en) * 1999-12-02 2011-04-26 Western Digital Technologies, Inc. Managed peer-to-peer applications, systems and methods for distributed data access and storage
US7587467B2 (en) * 1999-12-02 2009-09-08 Western Digital Technologies, Inc. Managed peer-to-peer applications, systems and methods for distributed data access and storage
DE60038982D1 (de) 1999-12-02 2008-07-03 Western Digital Tech Inc System zum fernaufnehmen von fernsehprogrammen
US7546353B2 (en) * 1999-12-02 2009-06-09 Western Digital Technologies, Inc. Managed peer-to-peer applications, systems and methods for distributed data access and storage
US6745223B1 (en) * 2000-01-26 2004-06-01 Viaclix, Inc. User terminal for channel-based internet network
US7003571B1 (en) * 2000-01-31 2006-02-21 Telecommunication Systems Corporation Of Maryland System and method for re-directing requests from browsers for communication over non-IP based networks
US8090856B1 (en) 2000-01-31 2012-01-03 Telecommunication Systems, Inc. Intelligent messaging network server interconnection
US20020009293A1 (en) * 2000-02-03 2002-01-24 Aldrich Kipp A. HDTV video server
US6658473B1 (en) * 2000-02-25 2003-12-02 Sun Microsystems, Inc. Method and apparatus for distributing load in a computer environment
KR100890209B1 (ko) * 2000-06-22 2009-03-25 마이크로소프트 코포레이션 분산 컴퓨팅 서비스 플랫폼
EP1176760A1 (de) * 2000-07-27 2002-01-30 Telefonaktiebolaget Lm Ericsson Verfahren zum Verbinden eines Endgerätes mit einem Server
GB2369202B (en) * 2000-08-31 2003-03-19 Sun Microsystems Inc Computer system and method of operating a computer system
JP3776706B2 (ja) * 2000-10-04 2006-05-17 富士通株式会社 データ通信装置、データ通信方法およびデータ通信プログラムを記録したコンピュータ読み取り可能な記録媒体
US7483983B1 (en) 2000-11-13 2009-01-27 Telecommunication Systems, Inc. Method and system for deploying content to wireless devices
US7206819B2 (en) 2001-01-18 2007-04-17 Sun Microsystems, Inc. Method and apparatus for providing virtual namespaces for active computing environments
US7237257B1 (en) * 2001-04-11 2007-06-26 Aol Llc Leveraging a persistent connection to access a secured service
US20020169967A1 (en) * 2001-05-14 2002-11-14 Sangeeta Varma Method and apparatus for multiple token access to thin client architecture session
US7650299B2 (en) * 2001-06-02 2010-01-19 Thermwood Corporation Method of marketing and advertising component products used in the production of composite products
US6954792B2 (en) * 2001-06-29 2005-10-11 Sun Microsystems, Inc. Pluggable authentication and access control for a messaging system
US7571257B2 (en) 2001-07-31 2009-08-04 Guthery Scott B Communications network with smart card
US7191233B2 (en) * 2001-09-17 2007-03-13 Telecommunication Systems, Inc. System for automated, mid-session, user-directed, device-to-device session transfer system
US7373515B2 (en) * 2001-10-09 2008-05-13 Wireless Key Identification Systems, Inc. Multi-factor authentication system
US20030084165A1 (en) * 2001-10-12 2003-05-01 Openwave Systems Inc. User-centric session management for client-server interaction using multiple applications and devices
US20030115154A1 (en) * 2001-12-18 2003-06-19 Anderson Anne H. System and method for facilitating operator authentication
US20030163691A1 (en) * 2002-02-28 2003-08-28 Johnson Ted Christian System and method for authenticating sessions and other transactions
US7363363B2 (en) * 2002-05-17 2008-04-22 Xds, Inc. System and method for provisioning universal stateless digital and computing services
US7356711B1 (en) 2002-05-30 2008-04-08 Microsoft Corporation Secure registration
US8117328B2 (en) * 2002-06-25 2012-02-14 Microsoft Corporation System and method for automatically recovering from failed network connections in streaming media scenarios
US7356836B2 (en) * 2002-06-28 2008-04-08 Microsoft Corporation User controls for a computer
US7233790B2 (en) * 2002-06-28 2007-06-19 Openwave Systems, Inc. Device capability based discovery, packaging and provisioning of content for wireless mobile devices
US7299033B2 (en) * 2002-06-28 2007-11-20 Openwave Systems Inc. Domain-based management of distribution of digital content from multiple suppliers to multiple wireless services subscribers
US20040024867A1 (en) * 2002-06-28 2004-02-05 Openwave Systems Inc. Method and apparatus for determination of device capabilities on a network
US7075538B2 (en) * 2002-08-30 2006-07-11 Sun Microsystems, Inc. Methods and apparatus for faster line drawing on remote displays
US7269136B2 (en) * 2002-08-30 2007-09-11 Sun Microsystems, Inc. Methods and apparatus for avoidance of remote display packet buffer overflow
KR100602335B1 (ko) * 2002-09-28 2006-07-14 주식회사 케이티 초고속 무선인터넷 시스템의 세션 관리 방법
US7426535B2 (en) 2002-10-08 2008-09-16 Telecommunication Systems, Inc. Coordination of data received from one or more sources over one or more channels into a single context
AU2002953335A0 (en) * 2002-12-11 2003-01-09 Click N Learn Pty Ltd Computer screen motion capture
CN1759558A (zh) * 2003-03-10 2006-04-12 汤姆森特许公司 利用公共验证服务器的无线局域网访问控制中的身份映射机制
US9412123B2 (en) 2003-07-01 2016-08-09 The 41St Parameter, Inc. Keystroke analysis
US9100814B2 (en) * 2003-09-17 2015-08-04 Unwired Plant, Llc Federated download of digital content to wireless devices
BRPI0414616A (pt) * 2003-09-25 2006-11-07 Solmaze Co Ltd método de serviço de certificação seguro
US8386376B2 (en) * 2004-02-09 2013-02-26 American Express Travel Related Services Company, Inc. System and method using enhanced authorization data to reduce travel-related transaction fraud
US10999298B2 (en) 2004-03-02 2021-05-04 The 41St Parameter, Inc. Method and system for identifying users and detecting fraud by use of the internet
BRPI0509900A (pt) * 2004-04-12 2007-09-18 Xds Inc sistema e método para iniciar automaticamente e estabelecer de forma dinámica conexões seguras pela internet entre um servidor com barreira de proteção e um cliente com barreira de proteção
JP2006031175A (ja) * 2004-07-13 2006-02-02 Sony Corp 情報処理システム、情報処理装置、およびプログラム
US7961883B2 (en) * 2004-11-24 2011-06-14 Research In Motion Limited System and method for securing a personalized indicium assigned to a mobile communications device
US8346910B2 (en) * 2004-11-30 2013-01-01 American Express Travel Related Services Company, Inc. Method and apparatus for managing an interactive network session
DE102005013639A1 (de) * 2005-03-24 2006-11-16 Dynetic Solutions Gmbh Verfahren und System zum Ausgeben von Daten
EP1752937A1 (de) 2005-07-29 2007-02-14 Research In Motion Limited System und Verfahren zur verschlüsselten Eingabe einer persönlichen Identifizierungsnummer für eine Chipkarte
US7818580B2 (en) * 2005-08-09 2010-10-19 International Business Machines Corporation Control of port based authentication protocols and process to support transfer of connection information
CA2621990A1 (en) * 2005-09-09 2007-03-15 Smiths Detection Inc. Multicast delivery of multimedia content on demand
US7743138B2 (en) * 2005-09-22 2010-06-22 Dot Hill Systems Corporation Method and apparatus for external event notification management over in-band and out-of-band networks in storage system controllers
US7818436B2 (en) * 2005-09-22 2010-10-19 Dot Hill Systems Corporation Method and apparatus for external interface user session management in storage system controllers
US8392963B2 (en) * 2005-11-28 2013-03-05 Imperva, Inc. Techniques for tracking actual users in web application security systems
US8938671B2 (en) 2005-12-16 2015-01-20 The 41St Parameter, Inc. Methods and apparatus for securely displaying digital images
US11301585B2 (en) 2005-12-16 2022-04-12 The 41St Parameter, Inc. Methods and apparatus for securely displaying digital images
WO2007087340A1 (en) * 2006-01-24 2007-08-02 Clevx, Llc Data security system
US20070237145A1 (en) * 2006-03-30 2007-10-11 Avaya Technology Llc Comparison based authentication in RTP
US8151327B2 (en) 2006-03-31 2012-04-03 The 41St Parameter, Inc. Systems and methods for detection of session tampering and fraud prevention
US20080314977A1 (en) * 2006-06-08 2008-12-25 American Express Travel Related Services Company, Inc. Method, System, and Computer Program Product for Customer-Level Data Verification
US9195985B2 (en) 2006-06-08 2015-11-24 Iii Holdings 1, Llc Method, system, and computer program product for customer-level data verification
US7765587B2 (en) 2006-08-14 2010-07-27 International Business Machines Corporation Glyphword-based security
KR100804831B1 (ko) 2006-12-28 2008-02-20 삼성전자주식회사 무선 usb 호스트 및 무선 usb 디바이스간에 세션을생성하고 관리하는 방법, 무선 usb 호스트 및 무선usb 디바이스
EP2192742B1 (de) * 2007-08-21 2017-05-03 China Mobile Communications Corporation Lokalsitzungssteuerung, ip-multimedia-subsystem und sitzungsregistrationsverfahren
US9747598B2 (en) 2007-10-02 2017-08-29 Iii Holdings 1, Llc Dynamic security code push
US8626926B2 (en) 2008-02-26 2014-01-07 Qualcomm Incorporated Method and apparatus for performing session info query for user plane location
US8312033B1 (en) 2008-06-26 2012-11-13 Experian Marketing Solutions, Inc. Systems and methods for providing an integrated identifier
US9112850B1 (en) 2009-03-25 2015-08-18 The 41St Parameter, Inc. Systems and methods of sharing information through a tag-based consortium
US9030406B2 (en) 2010-09-17 2015-05-12 Viaclix, Inc. Remote control functionality including information from motion sensors
US9607336B1 (en) 2011-06-16 2017-03-28 Consumerinfo.Com, Inc. Providing credit inquiry alerts
US10754913B2 (en) 2011-11-15 2020-08-25 Tapad, Inc. System and method for analyzing user device information
US9633201B1 (en) 2012-03-01 2017-04-25 The 41St Parameter, Inc. Methods and systems for fraud containment
US8650120B2 (en) 2012-03-02 2014-02-11 American Express Travel Related Services Company, Inc. Systems and methods for enhanced authorization fraud mitigation
US9521551B2 (en) 2012-03-22 2016-12-13 The 41St Parameter, Inc. Methods and systems for persistent cross-application mobile device identification
EP2880619A1 (de) 2012-08-02 2015-06-10 The 41st Parameter, Inc. Systeme und verfahren für den zugriff auf datensätze über derivatlokalisatoren
WO2014078569A1 (en) 2012-11-14 2014-05-22 The 41St Parameter, Inc. Systems and methods of global identification
US10142406B2 (en) 2013-03-11 2018-11-27 Amazon Technologies, Inc. Automated data center selection
US10313345B2 (en) 2013-03-11 2019-06-04 Amazon Technologies, Inc. Application marketplace for virtual desktops
US9148350B1 (en) 2013-03-11 2015-09-29 Amazon Technologies, Inc. Automated data synchronization
US9002982B2 (en) 2013-03-11 2015-04-07 Amazon Technologies, Inc. Automated desktop placement
US10664936B2 (en) 2013-03-15 2020-05-26 Csidentity Corporation Authentication systems and methods for on-demand products
US9633322B1 (en) 2013-03-15 2017-04-25 Consumerinfo.Com, Inc. Adjustment of knowledge-based authentication
US9721147B1 (en) 2013-05-23 2017-08-01 Consumerinfo.Com, Inc. Digital identity
US10623243B2 (en) * 2013-06-26 2020-04-14 Amazon Technologies, Inc. Management of computing sessions
US10686646B1 (en) 2013-06-26 2020-06-16 Amazon Technologies, Inc. Management of computing sessions
US10902327B1 (en) 2013-08-30 2021-01-26 The 41St Parameter, Inc. System and method for device identification and uniqueness
US10373240B1 (en) 2014-04-25 2019-08-06 Csidentity Corporation Systems, methods and computer-program products for eligibility verification
US10091312B1 (en) 2014-10-14 2018-10-02 The 41St Parameter, Inc. Data structures for intelligently resolving deterministic and probabilistic device identifiers to device profiles and/or groups
US20170317826A1 (en) * 2014-11-14 2017-11-02 Mitsubishi Electric Corporation Server device, client device, computer readable medium, session managing method, and client server system
US9602468B2 (en) * 2014-11-19 2017-03-21 Facebook, Inc. Techniques to authenticate a client to a proxy through a domain name server intermediary
US10572661B2 (en) * 2016-08-16 2020-02-25 Nec Corporation Automated blackbox inference of external origin user behavior
TWI650731B (zh) * 2017-07-03 2019-02-11 國立高雄科技大學 數位影像的適應性自我修復與驗證方法、電腦程式產品
WO2019088985A1 (en) * 2017-10-30 2019-05-09 Visa International Service Association Data security hub
US10911234B2 (en) 2018-06-22 2021-02-02 Experian Information Solutions, Inc. System and method for a token gateway environment
US11941065B1 (en) 2019-09-13 2024-03-26 Experian Information Solutions, Inc. Single identifier platform for storing entity data
US11449636B2 (en) 2019-10-04 2022-09-20 Mastercard International Incorporated Systems and methods for secure provisioning of data using secure tokens
US11652813B2 (en) 2019-10-04 2023-05-16 Mastercard International Incorporated Systems and methods for real-time identity verification using a token code
CN112153103B (zh) * 2020-08-10 2022-12-23 招联消费金融有限公司 会话管理方法、装置、计算机设备和存储介质
US11941266B2 (en) 2021-10-20 2024-03-26 Samsung Electronics Co., Ltd. Resource isolation in computational storage devices

Family Cites Families (36)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5694603A (en) 1982-09-28 1997-12-02 Reiffin; Martin G. Computer memory product with preemptive multithreading software
US5027269A (en) * 1989-04-27 1991-06-25 International Business Machines Corporation Method and apparatus for providing continuous availability of applications in a computer network
JPH0658624B2 (ja) 1990-03-30 1994-08-03 インターナショナル・ビシネス・マシーンズ・コーポレーション グラフィカル・ユーザ・インターフェース管理装置
JPH0756628B2 (ja) 1990-10-22 1995-06-14 富士ゼロックス株式会社 グラフィカル・ユーザインターフェースの編集装置
US5430836A (en) 1991-03-01 1995-07-04 Ast Research, Inc. Application control module for common user access interface
US5577209A (en) * 1991-07-11 1996-11-19 Itt Corporation Apparatus and method for providing multi-level security for communication among computers and terminals on a network
US5291585A (en) 1991-07-29 1994-03-01 Dell Usa, L.P. Computer system having system feature extension software containing a self-describing feature table for accessing I/O devices according to machine-independent format
US5566330A (en) 1991-08-20 1996-10-15 Powersoft Corporation Method for forming a reusable and modifiable database interface object
US5461710A (en) 1992-03-20 1995-10-24 International Business Machines Corporation Method for providing a readily distinguishable template and means of duplication thereof in a computer system graphical user interface
JPH0683603A (ja) 1992-04-03 1994-03-25 Internatl Business Mach Corp <Ibm> オブジェクト・クラスのバッチ登録の方法とシステム
US5347627A (en) 1992-04-07 1994-09-13 International Business Machines Corporation Graphical user interface including dynamic sizing and spacing
US5526517A (en) 1992-05-15 1996-06-11 Lsi Logic Corporation Concurrently operating design tools in an electronic computer aided design system
US5423034A (en) 1992-06-10 1995-06-06 Cohen-Levy; Leon Network file management with user determined hierarchical file structures and means for intercepting application program open and save commands for inputting and displaying user inputted descriptions of the location and content of files
GB2270242A (en) 1992-08-29 1994-03-02 Ibm A method of editing for an object oriented computer system
US5412772A (en) 1992-10-13 1995-05-02 Novell, Inc. System for permitting a view of an object or a user interface to be exchanged between operating system environments
US5384911A (en) 1992-12-23 1995-01-24 International Business Machines Corporation Method of transferring programs from action oriented GUI paradigm to object oriented GUI paradigm
US5345550A (en) 1992-12-23 1994-09-06 International Business Machines Corporation User-modifiable popup menus for object oriented behavior
US5448695A (en) 1992-12-31 1995-09-05 International Business Machines Corporation Method and apparatus for dynamic visual feedback messaging in a graphical user interface of a data processing system
US5436637A (en) 1993-03-05 1995-07-25 Borland International, Inc. Graphical user interface system and methods for improved user feedback
JP2620576B2 (ja) 1993-04-15 1997-06-18 インターナショナル・ビジネス・マシーンズ・コーポレイション ユーザが要求したフォントに従ってグラフィカル・ユーザ・インターフェースを調節する方法及びシステム
US5559942A (en) 1993-05-10 1996-09-24 Apple Computer, Inc. Method and apparatus for providing a note for an application program
US5590199A (en) 1993-10-12 1996-12-31 The Mitre Corporation Electronic information network user authentication and authorization system
US5422674A (en) 1993-12-22 1995-06-06 Digital Equipment Corporation Remote display of an image by transmitting compressed video frames representing background and overlay portions thereof
US5461399A (en) 1993-12-23 1995-10-24 International Business Machines Method and system for enabling visually impaired computer users to graphically select displayed objects
US5548702A (en) 1993-12-23 1996-08-20 International Business Machines Corporation Scrolling a target window during a drag and drop operation
US5491784A (en) 1993-12-30 1996-02-13 International Business Machines Corporation Method and apparatus for facilitating integration of software objects between workspaces in a data processing system graphical user interface
US5546519A (en) 1994-02-28 1996-08-13 International Business Machines Corporation System and method for visually programming iteration
US5550968A (en) 1994-04-12 1996-08-27 International Business Machines Corporation Method and system for providing access security to controls in a graphical user interface
US5944794A (en) * 1994-09-30 1999-08-31 Kabushiki Kaisha Toshiba User identification data management scheme for networking computer systems using wide area network
US5473745A (en) 1994-12-14 1995-12-05 International Business Machines Corporation Exposing and hiding a title bar behind its window using a visual cue
US5570462A (en) 1995-05-05 1996-10-29 Apple Computer, Inc. System and method for object placement and sizing in a dynamic display environment
US5572643A (en) 1995-10-19 1996-11-05 Judson; David H. Web browser with dynamic display of information objects during linking
US5754830A (en) * 1996-04-01 1998-05-19 Openconnect Systems, Incorporated Server and web browser terminal emulator for persistent connection to a legacy host system and method of operation
US5832228A (en) * 1996-07-30 1998-11-03 Itt Industries, Inc. System and method for providing multi-level security in computer devices utilized with non-secure networks
US5935212A (en) * 1997-08-07 1999-08-10 I-Planet, Inc. Connection-oriented session emulation
US5964836A (en) * 1997-09-11 1999-10-12 International Business Machines Corporation Apparatus, methods and computer program products for managing web-page-embedded sessions with a host-based application

Also Published As

Publication number Publication date
WO1999054803A9 (en) 2000-04-13
WO1999054803A2 (en) 1999-10-28
KR20010042902A (ko) 2001-05-25
CN1255977C (zh) 2006-05-10
EP1074136A2 (de) 2001-02-07
JP2006073016A (ja) 2006-03-16
ATE298960T1 (de) 2005-07-15
KR100597085B1 (ko) 2006-07-05
JP2002512394A (ja) 2002-04-23
AU748916B2 (en) 2002-06-13
EP1074136B1 (de) 2005-06-29
DE69925996D1 (de) 2005-08-04
CA2329034A1 (en) 1999-10-28
US6223289B1 (en) 2001-04-24
AU3656599A (en) 1999-11-08
CN1306716A (zh) 2001-08-01
WO1999054803A3 (en) 2000-06-29
HK1035457A1 (en) 2001-11-23
JP4018711B2 (ja) 2007-12-05

Similar Documents

Publication Publication Date Title
DE69925996T2 (de) Verfahren und vorrichtung zur sitzungsverwaltung und benutzerauthentifizierung
US7346689B1 (en) Computer architecture having a stateless human interface device and methods of use
EP1330705A2 (de) Verfahren und vorrichtung zur sitzungsverwaltung und benutzerauthentifizierung
DE60218160T2 (de) Verfahren und systeme zur datenübertragung über ein netz
CN105405325B (zh) 一种网络教学方法及系统
DE60024706T2 (de) Verteiltes Parameterkontrollprotokoll
DE60120855T2 (de) Verfahren und Vorrichtung für elektronische Post
US7206811B2 (en) System and method for facilitating real-time collaborating by collapsing a queue for a slow client
US6915347B2 (en) Associating multiple display units in a grouped server environment
US8176155B2 (en) Remote network management system
DE60212339T2 (de) Ein digitales fernsehen anwendungsprotokoll zum interaktiven fernsehen
EP0814611B1 (de) Kommunikationssystem und Verfahren zur Aufnahme und Verwaltung digitaler Bilder
DE60114986T2 (de) Verfahren zur herausgabe einer elektronischen identität
DE60100624T2 (de) Verfahren und vorrichtung zum verbessern der verwendung eines betriebsmittels auf einem verteilten klient
US20040181796A1 (en) Real-time collaboration client
US20040179036A1 (en) Method of sharing a desktop with attendees of a real-time collaboration
US7401114B1 (en) Method and apparatus for making a computational service highly available
US20060026100A1 (en) Dynamic downloading of keyboard keycode data to a networked client
EP2406726A2 (de) Verschleissfreie remote-desktop-protokoll (rdp)-anzeige
DE60210630T2 (de) Ferndatenerfassungsvorrichtung mit elektronischer post über öffentliche und private netzwerken und verfahren und rechnerprogramm dafür
US20010034770A1 (en) Method and device for implementing networked terminals in graphical operating environment
US20030046590A1 (en) Secure personal identification number entry in a distributed network
WO2001063402A2 (en) Method and apparatus for making a computational service highly available

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee