-
GEBIET DER
ERFINDUNG
-
Die
vorliegende Erfindung steht in Zusammenhang mit dem Datenaustausch
zwischen Web-Sites und Webclients und insbesondere mit Sitzungsverwaltungs-
und Berechtigungsüberprüfungsmitteln
unter Verwendung von sicheren und nichtsicheren Übertragungsprotokollen für Sitzungen
zwischen Web-Sites und Webclients.
-
GRUNDLAGEN
DER ERFINDUNG
-
Viele
Unternehmen haben das Internet als eine Möglichkeit zur Kostensenkung
und Bekanntmachung ihrer Dienste oder Produkte für eine breite Verbraucherbasis
begrüßt. Diese
Unternehmen (d.h. Webhändler) haben
Web-Sites für
den Online-Verkauf von Dienstleistungen, beispielsweise Daten oder
Software, und/oder Gebrauchsgütern
eingerichtet. Dies nutzen viele Verbraucher (d.h. Webclients), die
aufgrund der Bequemlichkeit, mit der sie online einkaufen können, in
zunehmendem Maße
das Internet nutzen. In der Tat werden Online-Transaktionen zwischen
Web-Händlern und
Webclients immer zahlreicher.
-
Trotz
seiner Bequemlichkeit ist der elektronische Handel nicht frei von
Problemen, da der Datenaustausch zwischen dem Web-Browser eines Webclient
und einer Web-Site des elektronischen Handels auf HTTP (HyperText
Transfer Protocol) beruht. HTTP ist zustandslos, was bedeutet, dass
das HTTP-Protokoll keine Daten über
einen Webclient von einem Besuch bis zum nächsten aufbewahrt. Infolgedessen
muss die Web-Site des elektronischen Handels bestimmte Schritte
unternehmen, um sich an einen Webclient zu erinnern, der die Site
zu einem späteren
Zeitpunkt erneut besucht. Ein weiteres Problem besteht darin, dass
HTTP nicht sicher ist, was unangenehm ist, da ein Webclient sensitive
Daten bereitstellen muss, beispielsweise eine Kreditkartennummer
oder eine Kontonummer, um Produkte zu bezahlen und zu empfangen.
Ein unberechtigter Benutzer kann den HTTP-Datenaustausch möglicherweise
beobachten, um diese sensitiven Daten zu stehlen. Der unberechtigte
Benutzer könnte
sodann unter der Identität
des Webclient Waren bestellen und fordern, dass die Waren an eine
andere Adresse geliefert werden, oder auf sensitive Daten eines
Webclient zugreifen, beispielsweise auf Adressen- und Kreditkartendaten.
-
Um
diesen Problemen entgegenzuwirken, muss eine Web-Site des elektronischen
Handels während eines
Dialogs mit einem Webclient eine Berechtigungsüberprüfung und eine Sitzungsverwaltung
ermöglichen. Außerdem muss
ein sicheres Übertragungsprotokoll
verwendet werden, wenn sensitive Daten zwischen dem Webclient und
der Web-Site des elektronischen Handels übertragen werden. Die Sitzungsverwaltung
ermöglicht
es einer Web-Site, sich zwischen verschiedenen Anmeldesitzungen
an einen Webclient zu erinnern, wohingegen die Berechtigungsüberprüfung eine
Sicherheitsmaßnahme
ist, die sicherstellt, dass eine Anforderung an eine Web-Site von
demselben Webclient stammt, der sich ursprünglich bei der Web-Site anmeldete. Ein
sicheres Übertragungsprotokoll
verschlüsselt
die zwischen der Web-Site des elektronischen Handels und einem Webclient übertragenen
Daten. Zur Ausführung einer
Berechtigungsüberprüfung und
einer Sitzungsverwaltung können
eine HTTP-Basisberechtigungsüberprüfung (HTTP
Basic Authentication), eine Berechtigungsüberprüfung mit Hilfe von Name-Werte-Paaren
(Name-Value Pair Authentication) oder Sitzungscookies verwendet
werden.
-
Die
HTTP-Basisberechtigungsüberprüfung verlangt
stets die Anmeldung eines Webclient vor der Sitzungsverwaltung.
Zu diesem Zweck klappt ein Anmeldefenster auf, wenn der Webclient
erstmals auf die Web-Site zugreift. Dieses Anmeldefenster kann vom
Web-Site-Verwalter nicht einfach angepasst werden. Folglich gibt
es keine Unterstützung
für einen
Gastclientzugriff auf sichere Webseiten, da der Webserver den Webclient
zur Anmeldung zwingt. Infolgedessen verwenden die meisten Web-Sites
des elektronischen Handels keine HTTP-Basisberechtigungsüberprüfung.
-
Die
Berechtigungsüberprüfung mit
Hilfe von Name-Werte-Paaren beinhaltet die Einbettung von Sicherheitsdaten
in jeden URL (Uniform Resource Locator) oder in die Daten auf jeder
Webseite der Web-Site des elektronischen Handels.
-
Infolgedessen
müssen
Web-Site-Entwickler für
jede Webseite eine Berechtigungsüberprüfung bearbeiten,
indem Berechtigungsdaten von einer Webseite an die andere weitergeleitet
werden. Diese Berechtigungsdaten können leicht verloren gehen,
wenn der Web-Client von einer sicheren Webseite zu einer nichtsicheren
Webseite springt. Außerdem
unterstützen
Name-Werte-Paare einen Gastclientzugriff auf sichere Webseiten nicht,
da der Webserver den Webclient beim Zugriff auf eine sichere Webseite
zur Registrierung oder Anmeldung zwingt. Die Berechtigungsdaten
sind auch nicht sicher, falls sie an den URL der Webseite angehängt werden,
da dieser möglicherweise
im Protokoll des Webserver offengelegt oder im Web-Browser des Webclient
gezeigt wird. Außerdem
sind in Webseitendaten enthaltene Berechtigungsdaten nicht sicher,
da sie beim Betrachten der Cachespeicherdateien des Web-Browser möglicherweise
zu sehen sind.
-
Cookies
sind das beliebteste Verfahren zur Sitzungsverwaltung und Berechtigungsüberprüfung zwischen
einer Web-Site und einem Webclient. Cookies werden im Computer des
Webclient gespeichert und aus diesem abgerufen. Permanente Cookies
werden im Festplattenlaufwerk des Computers gespeichert, während zeitweilige
Cookies im flüchtigen
Speicher gespeichert und gelöscht
werden, sobald die Websitzung beendet ist. Der Web-Browser Netscape
NavigatorTM speichert permanente Cookies
in einer Textdatei (d.h. cookie.txt), wobei pro Cookie eine Zeile
in der Datei verwendet wird, wohingegen der Web-Browser Microsoft
Internet ExplorerTM für jedes permanente Cookie eine
gesonderte Textdatei verwendet. Cookies sind so gestaltet, dass sie
dem Webserver brauchbare Daten über
den Webclient bereitstellen, beispielsweise auf welche Webseiten der
Webclient zuletzt zugegriffen hat. Außerdem können Cookies zum Bereitstellen
einer festgelegten Stufe eines Webclientzugriffs und einer Anpassung
in einer Web-Site verwendet werden. Das Cookie enthält außerdem eine
Beschreibung des Satzes von URLs, für die es gültig ist. Alle künftigen
vom Webclient stammenden HTTP-Anforderungen, die mit dem in einem
Cookie enthaltenen Satz von URLs übereinstimmen, beinhalten eine
Rückübertragung
des aktuellen Wertes des Cookie vom Webclient an den Webserver.
-
Wenn
ein Webclient zum ersten Mal Daten von einem Webserver anfordert,
der Cookies verwendet, liefert der Webserver die angeforderten Daten
zusammen mit einem Cookie. Das Cookie wird vom Webserver an den
Webclient übertragen,
indem ein Cookie-Einrichtungsvorsatz
(Set-Cookie header) als Teil einer HTTP-Antwort aufgenommen wird. Der Cookie-Enrichtungsvorsatz
wird von einem CGI-Skript erzeugt und enthält die folgenden Attribute:
NAME, DATE, PATH, DOMAIN und SECURE. Das Attribut NAME enthält Daten bezüglich des
Webclient, die von der Web-Site
verwendet werden. In einem Cookie können viele Attribute NAME vorliegen,
und in einer einzelnen Webserverantwort können viele Cookie-Einrichtungsvorsätze ausgegeben
werden. Das Attribut DATE gibt ein Datum an, das anzeigt, wann das
Cookie abläuft.
Das Attribut PATH gibt den Teilsatz von URLs in einer Domäne an, für die das
Cookie gültig
ist. Das Attribut DOMAIN ist der Internetdomänenname der Web-Site. Das Attribut
SECURE zeigt die Bedingungen an, unter denen das Cookie übertragen
wird. Falls das Attribut SECURE des Cookie beispielsweise als sicher
markiert ist, wird es nur übertragen,
falls der Übertragungskanal
zwischen dem Webserver und dem Webclient sicher ist.
-
Eine
auf Cookies beruhende Sitzungsverwaltung muss ein sicheres Übertragungsprotokoll
beinhalten, um zu verhindern, dass unberechtigte Benutzer im Cookie
enthaltene sensitive Daten stehlen. Ein solches Protokoll ist HTTPS
(HTTP über
SSL). Das Akronym SSL steht für
Secure Socket Layer-Protokoll, wobei es sich um einen Industriestandard
zur sicheren Datenübertragung
unter Verwendung von HTTP handelt. HTTPS beinhaltet Vorkehrungen
zur Webserver-Berechtigungsüberprüfung (wobei
die Identität
des Webserver gegenüber
dem Webclient bestätigt
wird), zur Datenverschlüsselung
und zur Webclient- Berechtigungsüberprüfung (wobei
die Identität
des Webclient gegenüber
dem Webserver bestätigt
wird). Jeder HTTPS-fähige
Webserver ist sowohl mit einem Codierer als auch einem Decodierer
versehen, die Schlüssel
und Datenverschlüsselungen
verwenden, die einmalig sind. Die Datenverschlüsselung, die Worte und Zahlen
in eine Reihe von alphanumerischen Zeichen umsetzt, kann nur vom
Decodierer freigegeben werden, den der Webhändler zusammen mit dem lizenzierten
Webserver erhält.
Der Grad der Sicherheit hängt
davon ab, ob ein 40-Bit- oder ein 128-Bit-Schlüssel verwendet wird. Die Schwierigkeit,
den Code (oder den Schlüssel)
zu knacken, steigt mit der Anzahl von im Schlüssel enthaltenen Bits. Cookie-basierte
Sitzungsverwaltungs- und Berechtigungsüberprüfungsschemen wurden nach dem
Stand der Technik beschrieben.
-
Die
US-Patentschrift 5 966 795, "Tracking
A User Across Both Secure And Nonsecure Areas On The Internet, Wherein
The User Is Initially Tracked Using A Globally Unique Identifier", stellt die Zuweisung
eines Token, beispielsweise eines GUID, an einen Benutzer vor, das
diesen eindeutig darstellt, wenn er zum ersten Mal auf einen nichtsicheren
Bereich auf einer Site zugreift, beispielsweise auf einen öffentlichen
Bereich. Das Token wird als Schlüssel
zu einem dem Benutzer zugeordneten Datenbankeintrag auf der Site
verwendet. Wenn der Benutzer erstmalig auf einen sicheren Bereich
auf derselben Site zugreift, wird er zur Eingabe einer Benutzerkennung
und eines Passwortes aufgefordert. Nach dem Empfang dieser Daten
verwendet die Site an Stelle des Token die Benutzerkennung als Schlüssel zum
Datenbankeintrag sowohl in nichtsicheren als auch in sicheren Bereichen.
Die Benutzerkennung wird sodann in einem Cookie gespeichert und
jedes Mal, wenn der Clientcomputer das Cookie an die Site weiterleitet,
von dieser empfangen. Folglich wird bei Verwendung der Benutzerkennung
als Schlüssel
nur ein Datenbankeintrag benötigt,
um Benutzer sowohl über
nichtsichere als auch über
sichere Bereiche hinweg zu verfolgen.
-
WO-00/69110, "Method And Apparatus
For Authenticating Users",
schlägt
vor, einen Berechtigungsüberprüfungsmechanismus
von einer Anwendung in Form eines Anmeldeservers nach außen zu verlagern,
so dass die Anwendung keinen Benutzer hinsichtlich seiner Berechtigung überprüfen muss.
Der Anmeldeserver ist so konfiguriert, dass er die Berechtigungsüberprüfung ausführt. Ein
die Anwendung enthaltender Anwendungsserver prüft, ob eine Anforderung eine
aktive und gültige
Sitzung hat, und falls keine gültige
Sitzung vorliegt, leitet er den Benutzer zum Anmeldeserver um. Der
Anmeldeserver versucht, unter Verwendung eines beliebigen Berechtigungsüberprüfungsmechanismus
eine Berechtigungsüberprüfung des
Benutzers auszuführen.
Sobald der Benutzer hinsichtlich seiner Berechtigung überprüft worden
ist, leitet der Anmeldeserver diesen zurück zum Anwendungsserver um,
und sobald eine Überprüfung ausgeführt worden
ist, verarbeitet der Anwendungsserver die Anforderung.
-
Die
US-Patentschrift 5 963 915, "Secure,
Convenient And Efficient System And Method Of Performing Trans-Internet
Purchase Transactions",
stellt ein Verfahren zur Ausführung
einer Kauftransaktion zwischen einem Client-Browser und einem Händler-Server über ein
Universalcomputernetz vor. Als Erstes wird ein permanenter, festgelegter,
codierter Kennzeichner in einem Client-Browser eingerichtet, der
einem von einem Händler-Server
gespeicherten Kontodatensatz entspricht. Anschließend werden
die Voraussetzungen für
das Bereitstellen einer Webseite geschaffen, die einen festgelegten
URL- Kennzeichner
enthält,
der ein käufliches Produkt
oder einen käuflichen
Dienst für
den Client-Browser kennzeichnet, wobei der festgelegte URL den permanenten,
festgelegten, codierten Kennzeichner als Bezug enthält. Der
Händler-Server
empfängt
den festgelegten URL, der den permanenten, festgelegten, codierten
Kennzeichner enthält.
Anschließend
wird der permanente, festgelegte, codierte Kennzeichner in Bezug
auf den Kontodatensatz auf seine Gültigkeit überprüft, und der Händler-Server
zeichnet die Identität
des käuflichen
Produktes oder Dienstes auf, wenn sie aus dem festgelegten URL abgeleitet
wird.
-
Die
US-Patentschrift 5 875 296 stellt ein Verfahren zur Bereitstellung
eines sicheren Zugriffs auf ein verteiltes Dateisystem über eine
Web-Site vor. Das Verfahren verwendet ein einzelnes Cookie, das
eine Benutzerkennung zum Zugreifen auf Dateien im verteilten Dateisystem
enthält.
Dieses Cookie ermöglicht
es, dass der Benutzer nicht bei jedem Zugriff auf Daten im verteilten
Dateisystem erneut eine Benutzerkennung und ein Passwort eingeben
muss. Außerdem
ist dieses Verfahren spezifisch für ein verteiltes Dateisystem
und verwendet kein sicheres Übertragungsprotokoll.
-
Die
US-Patentschrift 6 047 268 stellt ein System und ein Verfahren zur
Berechtigungsüberprüfung von Webclients
vor, die Online-Käufe
tätigen.
Die Berechtigungsüberprüfung wird
durch ein einzelnes Cookie bereitgestellt, das einen statischen
Teil, der die Kontonummer des Webclient kennzeichnet, und einen
verschlüsselten
dynamischen Teil enthält,
der die letzte vom Webclient ausgeführte Transaktion kennzeichnet.
Dieses Cookie wird nach jeder neuen Transaktion mit einem neuen
dynamischen Teil aktualisiert, jedoch beschreibt dieses Patent die
Verwendung sensitiver Daten im Cookie und eine permanente Cookie-Speicherung
im Computersystem des Webclient. Außerdem ist das in diesem Patent
vorgestellte Verfahren des elektronischen Handels nicht flexibel
genug, um die Ausführung
eines Online-Einkaufs durch Gastclients zu ermöglichen; alle Webclients müssen sich
zum Online-Einkauf registrieren. Die US-Patentschrift 6 047 268
beschreibt die Verwendung von HTTPS, legt jedoch nicht dar, ob ausschließlich HTTPS
verwendet wird oder ob das Übertragungsprotokoll
zwischen HTTPS und HTTP hin und her schaltet.
-
Die
US-Patentschrift 6 076 069 stellt ein System und ein Verfahren zum
Einlösen
elektronischer Coupons vor. Wenn ein Webclient eine Web-Site besucht,
die Werbung von einem Webhändler
anzeigt, wird im Computersystem des Webclient ein Coupon in Form
eines Cookie gespeichert. Falls der Webclient die Web-Site des Web-Händlers zu
einem späteren
Zeitpunkt besucht, erkennt die Web-Site den im Cookie gespeicherten elektronischen
Coupon und bietet dem Webclient einen Rabatt an. Dieses Patent lehrt
nicht die Verwendung eines sicheren Übertragungsprotokolls. Außerdem beschreibt
dieses Patent die Verwendung sensitiver Daten in den Cookies, beispielsweise
der Kontonummer des Webclient, und die Verwendung permanenter Cookies (d.h.,
die Cookies werden im Computersystem des Webclient dauerhaft gespeichert).
Diese beiden Merkmale führen
zu Sicherheitsproblemen.
-
Die
ausschließliche
Verwendung von HTTPS bringt aufgrund der bei jedem Zugriff auf eine
Webseite ausgeführten
Codierung und Decodierung eine Verminderung der Leistungsfähigkeit
mit sich. Dies hat keine Auswirkungen, da viele Webseiten, beispielsweise
Webseiten von Produktkatalogen, die nebenbei am meisten von Webclients
besucht werden, keinen Schutz benötigen. Außerdem kann die Verwendung
von HTTPS für den
URL der Leitseite der Web-Site für
einen Webclient schwierig sein, da er an die Verwendung von "https" an Stelle von "http" im URL einer Web-Site
nicht gewöhnt
ist. Außerdem
kann das Umschalten zwischen HTTP und HTTPS mühsam sein, da gegenwärtig beim
Anmelden eines Webclient auf einer Web-Site unter Verwendung von
HTTPS ein Cookie zur Berechtigungsüberprüfung des Webclient ausgegeben
wird, falls der Webclient jedoch zu einem späteren Zeitpunkt auf eine nichtsichere
Webseite der Web-Site gelangt, die HTTP verwendet, wird dasselbe
Cookie im Klartext an den Webclient übertragen. An dieser Stelle
kann ein unberechtigter Benutzer das Cookie stehlen. Folglich gefährdet die
Verwendung eines einzelnen Cookie unter diesen Bedingungen die Sicherheit
der Web-Site.
-
US-A-5
966 705 stellt ein System und ein Verfahren zur Verfolgung eines
Benutzers über
sichere und nichtsichere Bereiche auf einer Internet-/Intranet-Site
vor. Sie beschreibt, wie der Zugriff auf eine Webseite ausgeführt werden
soll, nachdem bereits auf eine sichere Webseite zugegriffen wurde.
Sie schlägt
eine 3 Schritte umfassende Prozedur für nichtsichere Webseiten und
eine 4 Schritte umfassende Prozedur für einen sicheren Bereich vor:
erstens
(Schritt 108) das Weiterleiten eines benutzerspezifischen
GUID unter Verwendung eines nichtsicheren Protokolls;
zweitens
(Schritte 110, 112) das Zugreifen und Überprüfen des
benutzerspezifischen Datenbankeintrags;
drittens (Schritt 114 für eine öffentliche
Webseite oder 116 für
eine private Webseite oder 118 für einen sicheren Bereich) das
Zugreifen auf die Webseite oder das Auffordern zur Eingabe einer
Benutzer-ID und eines Passwortes, und viertens das Zugreifen auf
den sicheren Bereich nach einer erfolgreichen Anmeldung. Der Nachteil dieser
Abwicklung besteht darin, dass deren Ausführung zu kompliziert ist, da
sie zu viel Programmlogik, die durchlaufen werden muss, und zu viele
zu treffende Fallunterscheidungen beinhaltet.
-
WO
00/69110 stellt ein auf Cookies beruhendes Berechtigungsüberprüfungsverfahren
vor, das abgeschlossen von der eigentlichen Geschäftsanwendung
in einem anderen Berechtigungsüberprüfungsserver ausgeführt werden
muss. Die Trennung der Berechtigungsüberprüfung von der Anwendung auf
verschiedenen Servern kompliziert die Logik, in den zuvor beschriebenen
Situationen, in denen ein häufiger
Wechsel zwischen sicheren und nichtsicheren Webseiten ausgeführt werden
muss, würde
bei einem Wechsel von einer nichtsicheren Webseite mit einem nichtsicheren
Protokoll zu einer sicheren Webseite mit einem sicheren Protokoll
ein neuer Zugriff auf den Berechtigungsüberprüfungsserver benötigt.
-
US-A-5
963 915 stellt ein Verfahren und ein System zur Ausführung von
Kauftransaktionen über
das Internet auf eine sichere Weise durch die Verwendung von als "sicher" markierten Cookies
vor, um eine Markierung zum Auswählen
eines entsprechenden sicheren Protokolls zum Übertragen des Cookie zu haben. Nachteilig
ist, dass keine bestimmte Lehre vorgestellt wird, wie ein Webbenutzer
mit häufigen
Wechseln zwischen sicheren und nichtsicheren Webseiten leistungsfähig verfolgt
werden kann.
-
Dementsprechend
besteht ein Bedarf an einer verbesserten sicheren Sitzungsverwaltung
und einem verbesserten Berechtigungsüberprüfungsverfahren unter Verwendung
von Cookies, um sowohl die Web-Site als auch den Webclient vor unberechtigten
Benutzern zu schützen.
Die vorliegende Erfindung deckt diesen Bedarf ab.
-
ZUSAMMENFASSUNG
DER ERFINDUNG
-
Die
vorliegende Erfindung stellt ein Verfahren nach Anspruch 1 zur sicheren
Sitzungsverwaltung und Berechtigungsüberprüfung zwischen einer Web-Site
und einem Webclient bereit, wobei die Web-Site sichere und nichtsichere
Webseiten aufweist, wobei das Verfahren die folgenden Schritte umfasst:
Verwenden eines nichtsicheren Übertragungsprotokolls
und eines Sitzungscookie, wenn der Webclient einen Zugriff auf nichtsichere
Webseiten anfordert; und Verwenden eines sicheren Übertragungsprotokolls
und eines Berechtigungscode-Cookie (authcode cookie), wenn der Webclient
einen Zugriff auf sichere Webseiten anfordert.
-
Vorzugsweise
enthält
das Verfahren außerdem
die folgenden Schritte: Anfordern des Sitzungscookie vom Webclient,
wenn dieser einen Zugriff auf nichtsichere Webseiten anfordert,
und Überprüfen des
angeforderten Sitzungscookie; und Anfordern des Berechtigungscode-Cookie
vom Webclient, wenn dieser einen Zugriff auf sichere Webseiten anfordert,
und Überprüfen dieses
angeforderten Berechtigungscode-Cookie.
-
Vorzugsweise
enthält
das Verfahren außerdem
das Wechseln zwischen dem sicheren und dem nichtsicheren Übertragungsprotokoll,
wenn der Webclient abwechselnd den Zugriff auf sichere und nichtsichere Webseiten
anfordert.
-
Unter
einem anderen Aspekt ist die vorliegende Erfindung ein System nach
Anspruch 13 zur sicheren Sitzungsverwaltung und Berechtigungsüberprüfung zwischen
einer Web-Site und einem Webclient. Das System enthält einen
Webserver, einen Webclient und einen Übertragungskanal. Der Webserver
ist über
den Übertragungskanal
mit dem Webclient verbunden. Der Webserver hat eine Web-Site, die
sichere und nichtsichere Webseiten enthält; ein nichtsicheres Übertragungsprotokoll
und ein Sitzungscookie, um dem Webclient den Zugriff auf nichtsichere
Webseiten zu ermöglichen;
und ein sicheres Übertragungsprotokoll
und ein Berechtigungscode-Cookie, um dem Webclient den Zugriff auf
sichere Webseiten zu ermöglichen.
-
Vorzugsweise
enthält
die Web-Site außerdem
ein Prüfmittel
zum Überprüfen des
vom Webclient angeforderten Sitzungscookie; und ein Prüfmittel
zum Überprüfen des
vom Webclient angeforderten Berechtigungscode-Cookie.
-
Vorzugsweise
enthält
der Webserver außerdem
ein Sicherheitswechselmittel (security alternating means) zum Wechsel
zwischen dem nichtsicheren und dem sicheren Übertragungsprotokoll.
-
Fachleute
werden verstehen, dass die Erfindung in einem Computerprogramm ausgeführt werden kann,
das im Speicher gespeichert ist oder als ein Signal, beispielsweise
auf einem modulierten Trägersignal zur
Verwendung in einem Computersystem, oder in einem Netz, beispielsweise
dem Internet, zur Verwendung in einem Computersystem übertragen
werden kann.
-
KURZE BESCHREIBUNG
DER ZEICHNUNGEN
-
Zum
besseren Verständnis
der vorliegenden Erfindung und um klarer zu zeigen, wie sie realisiert
werden kann, wird nun beispielhaft auf die begleitenden Zeichnungen
Bezug genommen, in denen:
-
1 eine
schematische Darstellung der Komponenten der vorliegenden Erfindung
ist;
-
2 eine
Datenstrukturdarstellung der in der Tabelle USER_SESSION enthaltenen
Felder ist;
-
3 eine
Datenstrukturdarstellung der in der Tabelle URL_REGISTRY enthaltenen
Felder ist;
-
4a und 4b zusammen
ein Flussdiagramm eines ersten Verwendungsszenarios der vorliegenden
Erfindung umfassen;
-
5a, 5b und 5c zusammen
ein Flussdiagramm eines zweiten Verwendungsszenarios der vorliegenden
Erfindung umfassen; und
-
6a und 6b zusammen
ein Flussdiagramm eines dritten Verwendungsszenarios der vorliegenden
Erfindung umfassen.
-
AUSFÜHRLICHE
BESCHREIBUNG DER BEVORZUGTEN AUSFÜHRUNGSFORM
-
Ein
sicheres Sitzungsverwaltungssystem gemäß der vorliegenden Erfindung
wird in 1 allgemein als 10 gezeigt.
Das System 10 umfasst einen Webserver 12, einen Übertragungskanal 14 und
einen Webclient 16. Der Webserver 12 enthält das Webserver-Softwarepaket 18 zur
Erzeugung und Verwaltung der Web-Site 20. Die Web-Site 20 enthält die Webseiten 22,
die Datenbank 24 und den Cookie-Generator 26.
Die Webseiten 22 umfassen Typ-I-Webseiten 28 und Typ-II-Webseiten 30.
Typ-II-Webseiten 30 werden weiter unterteilt in Typ-IIa-Webseiten 32 und
Typ-IIb-Webseiten 34.
Die Datenbank 24 umfasst Tabellen, die für eine ordnungsgemäße Funktionsweise
der Web-Site 20 benötigt
werden, die für
die vorliegende Erfindung interessierenden Tabellen sind jedoch
die Tabelle 36 USER_SESSION und die Tabelle 38 URL_REGISTRY. Der
Cookie-Generator 26 kann ein Sitzungscookie 40 und
ein Berechtigungscode-Cookie 42 erzeugen. Während einer
bestehenden Sitzung mit der web-Site 20 wird der Webclient 16 als
Gastclient 44 oder als registrierter Client 46 betrachtet.
Im Folgenden bezieht sich der Begriff "Webclient" in der Beschreibung und in den Ansprüchen auf einen
Gastclient 44 oder einen registrierten Client 46.
Eine Vielzahl von Webclients 16 können gleichzeitig auf die Web-Site 20 zugreifen,
in 1 wird jedoch der Einfachheit halber nur ein Webclient 16 gezeigt.
Wie Fachleute verstehen werden, umfasst der Webclient 16 außerdem einen
Web-Browser (nicht gezeigt), mit Hilfe dessen er auf den Inhalt
der Web-Site 20 zugreifen und diesen sehen kann.
-
Der Übertragungskanal 14 verbindet
den Webclient 16 mit dem Webserver 12 und ist
vorzugsweise ein TCP/IP- (Transfer Communications Protocol/Internet
Protocol-) basiertes Netz, beispielsweise das Internet. TCP/IP ist
eine Familie von Protokollen, die verbundenen Computern eine gemeinsame
Nutzung von Ressourcen oder Daten über ein Netz ermöglichen.
Wie Fachleute verstehen werden, kann der Webclient 16 ein beliebiges
aus einer Vielzahl von Mitteln zur Verbindung mit dem Übertragungskanal 14 verwenden.
Beispielsweise kann der Webclient 16 durch einen Internetzugangsanbieter über ein
Telefon, ein Kabel oder einen drahtlosen Modem mit dem Übertragungskanal 14 verbunden
werden. Alternativ kann diese Verbindung auch durch ein Kabelfernsehnetz
oder ein anderes Zugangsmedium erfolgen. Der Übertragungskanal 14 kann
außerdem
ein Intranet, ein lokales Netz oder ein überregionales Netz sein, das
direkt mit dem Internet verbunden ist.
-
Der
Webserver 12 verwendet HTTP (HyperText Transport Protocol),
ein Standardanwendungsprotokoll, um dem Webclient 16 den
Zugriff auf die Webseiten 22, auf Dateien oder andere auf
der Web-Site 20 befindliche Daten zu ermöglichen.
Die Webseiten 22 liegen im HTML- (HyperText Markup Language-)
Format vor, das eine Industriestandardsprache zur Beschreibung von
Webseiten ist. HTML stellt eine grundlegende Dokumentenformatierung
bereit und ermöglicht
dem Webserver 12 die Angabe von Verbindungen zu anderen Web-Sites
und/oder Dateien. Alternativ können
andere Formate für
Webseiten 22 verwendet werden, beispielsweise ASP (Active
Server Page) oder JSP (Java Server Page). Der Webserver 12 enthält außerdem ein Webserver-Softwarepaket 18,
das beim Erstellen und Verwalten der Web-Site 20 hilft.
Ein solches Webserver-Softwarepaket 18 ist das von der
IBM Corporation verkaufte WCS Version 5.1TM.
-
Die
Web-Site 20 enthält
Typ-I-Webseiten 28 und Typ-II-Webseiten 30. Die Typ-I-Webseiten 28 sind
für alle
Webclients 16 identisch und enthalten statische und einige
dynamisch erzeugte Webseiten. Alternativ sind Typ-II-Webseiten 30 für einen
gegebenen Webclient 16 einmalig und enthalten Webseiten mit
Einkaufswagen (shopping cart web pages) und Webseiten mit Kontodaten.
Webseiten mit Einkaufswagen enthalten Einzelheiten über bevorstehende
Einkäufe,
die der Webclient 16 tätigt,
wohingegen Webseiten mit Kontodaten Daten des Webclient enthalten,
beispielsweise Adressendaten. Typ-II-Webseiten 30 können weiter
unterteilt werden in Typ-IIa-Webseiten 32 und Typ-IIb-Webseiten 34.
Typ-IIa-Webseiten 32 sind sichere Webseiten, die sensitive Daten
enthalten, die einen Schutz vor unberechtigten Benutzern benötigen, wohingegen
Typ-IIb-Webseiten 34 nichtsichere
Webseiten sind, da sie Daten enthalten, die nicht wichtig genug
sind, um vor unberechtigten Benutzern geschützt werden zu müssen. Die
Grenze zwischen Typ-IIa-Webseiten 32 und
Typ-IIb-Webseiten 34 ist nicht eindeutig und hängt von
den vom Verwalter der Web-Site 20 definierten Sicherheitsrichtlinien
ab. Ein der Veranschaulichung dienendes Beispiel einer Typ-IIa-Webseite 32 ist
eine Webseite mit Kreditkarteneingabe, und ein Beispiel einer Typ-IIb-Webseite 34 ist
eine Webseite mit einer Produktbeschreibung.
-
In
der bevorzugten Ausführungsform
der vorliegenden Erfindung ist die Datenbank 24 eine relationale Datenbank,
die eine Vielzahl von Tabellen enthält, die für die Verwaltung und die Funktionsweise
der Web-Site 20 benötigt
werden. Wie Fachleute erkennen werden, muss sich die Datenbank 24 nicht
auf der Web-Site 20 befinden
und kann in der Tat eine Vielzahl von Dateien in einer Vielzahl
von Systemen umfassen. Außerdem werden
Fachleute verstehen, dass viele Typen von Datenbankstrukturen verwendet
werden können,
beispielsweise objektorientierte Datenbanken, Netzdatenbanken, hierarchische
Datenbanken oder sogar eine Ansammlung einfacher Dateien.
-
In
der vorliegenden Erfindung enthält
die Datenbank 24 zur Berechtigungsüberprüfung und zur Sitzungsverwaltung
die Tabelle 36 USER_SESSION und die Tabelle 38 URL_REGISTRY. Die
Tabelle 36 USER_SESSION wird zum Verwalten von Sitzungsdaten für den Webclient 16 verwendet,
während
die Tabelle 38 URL_REGISTRY verwendet wird, um festzustellen, ob
ein sicheres oder ein nichtsicheres Übertragungsprotokoll benötigt wird,
wenn der Webclient 16 den Zugriff auf eine bestimmte Webseite 22 auf
der Web-Site 20 anfordert.
-
Jeder
Datensatz in der Tabelle 36 USER_SESSION enthält Daten über einen bestimmten Webclient 16.
Diese Daten werden in einer Vielzahl von in der Tabelle 36 USER_SESSION
enthaltenen Feldern gespeichert (siehe 2). In der
bevorzugten Ausführungsform
der vorliegenden Erfindung sind dies die folgenden Felder: USER_ID 50,
SESSION_ID 52, SESSION_TIMESTAMP 54, AUTHCODE 56, AUTHCODE_TIMESTAMP 58,
USER_TYPE 60, LOGIN_ID 62 und PASSWORD 64.
Für einen
bestimmten Webclient 16 enthält USER_ID 50 einen
einmaligen Schlüsselwert
zur Kennzeichnung des Webclient 16 in der Tabelle 36 USER_SESSION.
SESSION_ID 52 enthält
eine Zeichenfolge zur Kennzeichnung der aktuellen Websitzung zwischen
dem Webclient 16 und der Web-Site 20, SESSION_TIMESTAMP 54 enthält einen
Zeitstempel, der anzeigt, wann das Sitzungscookie 40 erzeugt
oder geändert
wurde. AUTHCODE 56 enthält
den Berechtigungscode für
den Webclient 16. AUTHCODE_TIMESTAMP 58 enthält einen
Zeitstempel, der anzeigt, wann das Berechtigungscode-Cookie 42 erzeugt
oder geändert
wurde. USER_TYPE 60 zeigt an, ob der Webclient 16 ein
Gastclient 44 oder ein registrierter Client 46 ist.
Falls der Webclient 16 bei der Web-Site 20 registriert
ist, enthält
LOGIN_ID 62 eine Anmeldekennung (login ID), und PASSWORD 64 enthält ein Passwort. Alternativ
können
andere Felder zur Tabelle 36 USER_SESSION hinzugefügt werden,
um mehr Daten über den
Webclient 16 oder mehr Funktionalität oder einen höheren Grad
an Sicherheit für
die Web-Site 20 bereitzustellen.
-
Jeder
Datensatz in der Tabelle 38 URL_REGISTRY enthält Daten über eine andere Webseite 22 auf der
Web-Site 20. Mit Bezugnahme auf 3 sind nun
die vorzugsweise in der Tabelle 38 URL_REGISTRY enthaltenen Felder
URL_ADDRESS 70 und HTTPS_FLAG 72. Für eine bestimmte
Webseite 22 auf der Web-Site 20 enthält URL_ADDRESS 70 die
URL-Adresse der Webseite 22, und HTTPS_FLAG 72 enthält einen
Wert von 1, falls die Webseite 22 ein sicheres Übertragungsprotokoll
benötigt,
oder einen Wert von 0, falls die Webseite 22 kein sicheres Übertragungsprotokoll
benötigt.
Alternativ können
andere Felder zur Tabelle 38 URL_REGISTRY hinzugefügt werden,
um mehr Daten über
die Webseite 22 bereitzustellen oder den Sicherheitsgrad
der Web-Site 20 zu erhöhen.
-
Der
Webserver 12 ermöglicht
es, dass der Webclient 16 beim Zugriff auf die Web-Site 20 ein
Gastclient 44 oder ein registrierter Client 46 ist,
jedoch ist der Webclient 16 bei jedem Zugriff auf die Web-Site 20 standardmäßig ein
Gastclient 44. Für
Webclients 16, die nur in der Web-Site 20 blättern oder
einen Einkauf tätigen und
anschließend
nie wieder auf die Web-Site 20 zugreifen möchten, ermöglicht die
Web-Site 20 einen anonymen Gastclientstatus. Ein Gastclient 44 benötigt weder
eine Anmeldekennung noch ein Passwort für die Web-Site 20,
kann jedoch in der Web-Site 20 blättern, sowohl auf sichere als
auch auf nichtsichere Webseiten zugreifen und Produkte bestellen.
Ein Gastclient 44 muss bei jedem Einkauf auf der Web-Site 20 clientspezifische
Daten ständig
erneut eingeben, beispielsweise eine Versandadresse und eine Kreditkartennummer.
Außerdem
kann ein Gastclient 44 die Web-Site 20 nicht erneut besuchen
und frühere
Einkäufe
(d.h. das Bestellprotokoll) abfragen.
-
Ein
registrierter Client 46 ist ein Webclient 16,
der sich bei der Web-Site 20 registriert und als registrierter
Kunde angemeldet hat. Registrierte Clients können ein kundenspezifisches
Konto für
einen kundenspezifischen Online-Einkauf
einrichten. Ein Gastclient 44 kann sich registrieren, indem
er ein Registrierungsformular ausfüllt (das vom Verwalter der
Web-Site 20 definiert werden kann). Das Registrierungsformular
könnte
den Namen des Webclient, die Wohnadresse, die eMail-Adresse, die
bevorzugte Zahlungsweise, die Anmeldekennung und das Passwort sowie
andere Daten anfordern. Diese Daten werden für einen zukünftigen Abruf oder eine zukünftige Änderung
in einer Webclientdaten enthaltenden Tabelle in der Datenbank 24 gespeichert.
Kreditkartendaten, die für
den registrierten Client 46 spezifisch sind, werden ebenfalls
in der Datenbank 24 gespeichert. Aufgrund der Speicherung
dieser Daten muss der registrierte Client 46 nicht bei
jedem Einkauf erneut eine Kreditkartennummer eingeben.
-
Der
Webserver 12 hat einen Cookie-Generator 26, der
das Sitzungscookie 40 und das Berechtigungscode-Cookie 42 erzeugt,
die zwischen dem Webserver 12 und dem Webclient 16 übertragen
werden. Bei der Übertragung
des Sitzungscookie 40 kann das Übertragungsprotokoll HTTP oder
HTTPS sein, bei der Übertragung
des Berechtigungscode-Cookie 42 muss das Übertragungsprotokoll
jedoch HTTPS sein. In der bevorzugten Ausführungsform verwendet die Web-Site 20 HTTPS
mit einem 40-Bit-
oder einem 128-Bit-Schlüssel als
sicherem Übertragungsprotokoll.
Der Verwalter der Web-Site 20 entscheidet, welche Schlüsselgröße verwendet
wird. Vorzugsweise soll ein 128-Bit-Schlüssel verwendet werden. Der
Erfinder beabsichtigt nicht, die Schlüsselgröße auf 40 oder 128 Bit zu beschränken, stattdessen
ist dies ein Vorschlag auf der Grundlage der zum Zeitpunkt der Erfindung üblicherweise
verwendeten Technologie. HTTPS ist in vielen Web-Browsern realisiert,
beispielsweise im Netscape NavigatorTM, im Secure MosaicTM und im Microsoft Internet ExplorerTM. HTTPS ist auch in Webservern realisiert,
die von Netscape, Microsoft und IBM Quarterdeck hergestellt werden.
-
Das
Sitzungscookie 40 ist für
die Sitzungsverwaltung zuständig,
während
das Berechtigungscode-Cookie 42 für die Berechtigungsüberprüfung zuständig ist.
In der bevorzugten Ausführungsform
sind das Sitzungscookie 40 und das Berechtigungscode-Cookie 42 zeitweilige
Cookies, die gelöscht
werden, wenn der Webclient 16 seinen Web-Browser schließt. Alternativ
kann das Sitzungscookie 40 als dauerhaft im Computersystem
des Webclient 16 gespeichert definiert werden, das Berechtigungscode-Cookie 42 muss
jedoch aus Sicherheitsgründen
stets zeitweilig sein.
-
Wie
an früherer
Stelle beschrieben wurde, umfasst ein Cookie die folgenden Attribute:
NAME, DATE, PATH, DOMAIN und SECURE. Die im Attribut NAME des Sitzungscookie 40 verwendeten
Daten umfassen vorzugsweise Daten, die in USER_ID 50, SESSION_ID 52 und
SESSION_TIMESTAMP 54 enthalten sind. Auf Wunsch können andere
zusätzliche
Daten (nicht gezeigt) in das Attribut NAME des Sitzungscookie 40 aufgenommen
werden. Die Daten aus USER_ID 50 sind ein einmaliger Schlüssel, der
zum Zugriff auf die in der Tabelle 36 USER_SESSION gespeicherten
Daten für
den Webclient 16 verwendet wird. SESSION_ID 52 enthält eine
Zeichenfolge, die von einem Verschlüsselungszufallsgenerator (cryptographic
random number generator) erzeugt wird. Der Verschlüsselungszufallsgenerator
hat die wesentliche Eigenschaft, dass der Wert der erzeugten Zahl
nicht vorhergesagt werden kann. In der bevorzugten Ausführungsform
der vorliegenden Erfindung ist der Verschlüsselungszufallsgenerator die
Funktion rand() in der C-Standard-Bibliothek,
die in allen handelsüblichen
C-Compilern verfügbar
ist. Obwohl die Funktion rand() nur Zahlen erzeugt, können auch
zufällige
Zeichenfolgen erzeugt werden, indem die zufällig erzeugte Zahl auf einen
Buchstaben des Alphabets abgebildet wird, indem die zufällig erzeugte
Zahl durch 26 dividiert wird und der Rest aus dieser Divisionsoperation
auf einen Buchstaben abgebildet wird, wobei ein Rest von 0 auf den
Buchstaben A, ein Rest von 1 auf den Buchstaben B, ein Rest von
2 auf den Buchstaben C abgebildet würde und so weiter. Falls beispielsweise eine
Zeichenfolge mit 10 Zeichen gewünscht wird, wird dieser Prozess
der Zahlenerzeugung, der Division durch 26 und der Abbildung
des Restes auf einen Buchstaben zehnmal wiederholt. Bei den Daten
aus SESSION_TIMESTAMP 54 handelt es sich um einen Zeitstempel,
der den Zeitpunkt anzeigt, zu dem das Sitzungscookie 40 erzeugt
oder geändert
wurde, was der Fall ist, wenn der Webclient 16 sich als
Gastclient 44 anmeldet, sich registriert, um ein registrierter
Client 46 zu werden, oder sich als registrierter Client 46 anmeldet. Die
Daten aus SESSION_TIMESTAMP 54 werden zur Bereitstellung
von zeitsensitiven Daten in das Sitzungscookie 40 aufgenommen,
wodurch die Sicherheit der Web-Site 20 erhöht wird,
indem es ermöglicht
wird, dass das Sitzungscookie eindeutiger wird und damit schwieriger
zu kopieren ist.
-
Die
im Attribut NAME im Sitzungscookie 40 enthaltenen Daten
werden erzeugt, indem die Daten aus SESSION_TIMESTAMP 54 an
SESSION_ID 52 angehängt
werden, eine nicht umkehrbare Quersummenfunktion (one-way hash function)
angewandt und das Ergebnis der MD5-Quersummenfunktion an die Daten
aus USER_ID 50 angehängt
wird. Die nicht umkehrbare MD5-Quersummenfunktion nimmt eine eingegebene
Zeichenfolge mit veränderlicher
Länge und
setzt diese in eine binäre
128-Bit-Folge um. Die nicht umkehrbare MD5-Quersummenfunktion ist
so gestaltet, dass es schwierig ist, den Quersummenprozess umzukehren,
um die eingegebene Zeichenfolge zu erhalten, die kontrollsummiert
wurde. In der bevorzugten Ausführungsform wird
die nicht umkehrbare MD5-Quersummenfunktion aus dem von RSA Laboratories
entwickelten BSAFETM-Toolkit verwendet.
Das Attribut PATH des Sitzungscookie 40 wird als "/" angegeben, was bedeutet, dass der Web-Browser
des Webclient 16 das Sitzungscookie 40 an den
Webserver 12 rückübertragen
muss, wenn der Webclient 16 den Zugriff auf irgendeinen
URL-Pfad auf der Web-Site 20 anfordert. Das Attribut EXPIRES
wird nicht angegeben, da das Sitzungscookie 40 zeitweilig
ist, und das Attribut DOMAIN wird nicht angegeben, da der Web-Browser
des Webclient 16 den Domänennamen des Webserver 12 verwendet.
Das Attribut SECURE wird nicht angegeben, da bei der Übertragung
des Sitzungscookie 40 zwischen dem Web-Browser des Webclient 16 und
dem Webserver 12 kein sicheres Übertragungsprotokoll erforderlich
ist. Falls der Webclient 16 ein registrierter Client 46 ist,
werden die in SESSION_ID 52 enthaltenen Daten beim nächsten Zugriff
des Webclient 16 auf die Web-Site 20 zur Erzeugung
des Sitzungscookie 40 verwendet, falls der Webclient 16 jedoch
nur ein Gastclient 44 ist, werden neue Daten aus den in
SESSION_ID 52 gespeicherten Daten verwendet, wenn das Sitzungscookie 40 erzeugt
wird.
-
Die
im Attribut NAME des Berechtigungscode-Cookie 42 verwendeten
Daten umfassen die in AUTHCODE 56 und AUTHCODE_TIMESTAMP 58 gespeicherten
Daten. Auf Wunsch können
andere zusätzliche Daten
(nicht gezeigt) in das Attribut NAME des Berechtigungscode-Cookie 42 aufgenommen
werden. Die Daten in AUTHCODE 56 sind vorzugsweise eine
zufällig
erzeugte Zeichenfolge oder ein ganzzahliger Wert, der von demselben
Verschlüsselungszufallsgenerator
erzeugt wird, der zum Erzeugen der in SESSION_ID 52 enthaltenen
Daten für
das Sitzungscookie 40 verwendet wurde. Alternativ kann
ein anderer Verschlüsselungszufallsgenerator
verwendet werden. Bei den in AUTHCODE_TIMESTAMP 58 enthaltenen
Daten handelt es sich um einen Zeitstempel, der den Zeitpunkt anzeigt,
zu dem das Berechtigungscode-Cookie 42 erzeugt oder geändert wurde,
was der Fall ist, wenn der Webclient 16 zum ersten Mal
als Gastclient 44 auf eine sichere Webseite 32 zugreift,
ein registrierter Client 46 wurde oder sich bei der Web-Site 20 als
registrierter Client 46 anmeldet. Die in AUTHCODE_TIMESTAMP 58 enthaltenen
Daten werden aus den gleichen Sicherheitsgründen in das Berechtigungscode-Cookie 42 aufgenommen,
wie sie oben für
das Sitzungscookie 40 beschrieben wurden.
-
Die
Daten im Attribut NAME des Berechtigungscode-Cookie 42 werden
durch Anhängen
der in AUTHCODE_TIMESTAMP 58 gespeicherten Daten an AUTHCODE 56 und
Anwenden der nicht umkehrbaren MD5-Quersummenfunktion erzeugt. Das
Attribut EXSPIRES wird nicht angegeben, da das Berechtigungscode-Cookie 42 zeitweilig
ist, und das Attribut DOMAIN wird nicht angegeben, da der Web-Browser
des Webclient 16 den Domänennamen des Webserver 12 verwendet.
Das Attribut SECURE wird angegeben, da bei der Übertragung des Berechtigungscode-Cookie 42 zwischen
dem Web-Browser des Webclient 16 und dem Webserver 12 ein
sicheres Übertragungsprotokoll
benötigt
wird. Das Attribut PATH des Berechtigungscode-Cookie 42 wird
als "/" angegeben, was bedeutet,
dass der Web-Browser des Webclient 16 den Zugriff auf irgendeinen
URL-Pfad auf der Web-Site 20 anfordert. Da das Attribut
SECURE eingestellt wird, wird das Berechtigungscode-Cookie 42 jedoch
nur übertragen,
wenn das vom Web-Browser des Webclient 16 verwendete Übertragungsprotokoll
sicher ist.
-
Beim
Zugriff auf die Web-Site 20 kann der Webclient 16 ein
Gastclient 44 oder ein registrierter Client 46 sein.
Standardmäßig wird
der Webclient 16 bei jedem Zugriff auf die Web-Site 20 als
ein Gastclient 44 betrachtet. Der Webclient 16 kann
sodann ein Gastclient 44 bleiben oder sich registrieren,
um ein registrierter Client 46 zu werden, oder sich als
ein registrierter Client 46 anmelden, falls er sich zuvor
bei der Web-Site 20 registriert hatte. In allen Fällen verwendet
der Webclient 16 einen Web-Browser, um die Webseiten 22 auf
der Web-Site 20 anzuschauen. Der Web-Browser könnte Netscape
NavigatorTM, Microsoft Internet ExplorerTM oder irgendein anderer geeigneter Web-Browser
sein. Der Webclient 16 richtet eine Verbindung mit der
Web-Site 20 ein, indem er deren URL anfordert, bei dem
es sich um eine spezielle Syntax handelt, die eine Netzadresse definiert.
Wenn der Webclient 16 einen URL anfordert, vergleicht der
Web-Browser des Webclient 16 den angeforderten URL mit
allen im Computersystem des Webclient 16 gespeicherten
Cookies, und eine Zeile, die die Name-/Werte- Paare aller übereinstimmenden Cookies enthält, wird
in die Anforderung nach der Web-Site 20 aufgenommen. Falls
der Webclient 16 die Cookieverwendung in seinem Web-Browser
deaktiviert hat, kann er nicht auf die Web-Site 20 zugreifen.
In diesem Fall benachrichtigt der Webserver 12 den Webclient 16,
dass die Cookieverwendung in seinem Web-Browser aktiviert werden
muss.
-
Das
Verfahren der vorliegenden Erfindung ist auf mehrere Komponentenprozesse
und grundlegende Definitionen angewiesen. Erstens muss die Web-Site 20 die
Verwendung von HTTPS erforderlich machen, wenn der Webclient 16 den
Zugriff auf sichere Webseiten 32 anfordert. Zweitens werden
die Anmelde- und Registrierungswebseiten
auf der Web-Site 20 als sichere Webseiten 32 definiert.
Die Komponentenprozesse werden nun im Pseudocodeformat gezeigt und
erläutert.
-
Der
Pseudocode für
den Prozess, mit Hilfe dessen die Web-Site 20 feststellt,
ob ein sicheres oder ein nichtsicheres Übertragungsprotokoll zwischen
dem Webclient 16 und der Web-Site 20 benötigt wird, wird unten als Prozess
A gezeigt.
-
Prozess
A: Feststellung der Notwendigkeit eines sicheren oder nichtsicheren Übertragungsprotokolls.
-
Der
Prozess A beginnt, wenn der Webclient 16 den Zugriff auf
die Webseite 22 auf der Web-Site 20 anfordert.
Der Webserver 12 ermittelt sodann den URL der Webseite 22 und
verwendet diesen als einen Schlüssel
für die
Tabelle 38 URL_REGISTRY, um den in HTTPS_FLAG 72 enthaltenen
Wert zu erhalten, der der Webseite 22 entspricht. Falls
der in HTTPS_FLAG 72 enthaltene Wert null ist, wird HTTPS
nicht benötigt, und
die Anforderung des Webclient 16 wird unabhängig davon
verarbeitet, ob er HTTP oder HTTPS verwendet. Falls HTTPS_FLAG 72 andererseits
einen Wert von eins enthält,
veranlasst der Webserver 12 den Web-Browser des Webclient 16, zum
URL der sicheren Web-Site zu gehen, der der Webseite 22 entspricht. Dies
erfolgt durch die Bereitstellung des URL der sicheren Web-Site im
HTTP-Vorsatz, den der Webserver 12 an den Web-Browser des
Webclient 16 überträgt. Der
Web-Browser des Webclient 16 weiß, dass HTTPS verwendet werden
muss, da "https" im übertragenen
URL enthalten ist. Der Web-Browser des Webclient 16 verwendet
sodann HTTPS, um den Zugriff auf die Webseite 22 anzufordern,
woraufhin die Anforderung verarbeitet wird. In der bevorzugten Ausführungsform
muss das Übertragungsprotokoll
von HTTP zu HTTPS umgeschaltet werden, falls ein Zugriff auf eine
sichere Webseite 32 angefordert wird, wenn der Webclient 16 HTTP verwendet.
Falls der Webclient 16 jedoch HTTPS verwendet, wenn er
den Zugriff auf eine nichtsichere Webseite 34 anfordert,
bleibt das Übertragungsprotokoll,
wie es ist. Alternativ kann der Verwalter der Web-Site 20 dieses
Merkmal unter Verwendung von Webserver-Software 18 ändern, so
dass im Falle einer Verwendung von HTTPS und einer Anforderung des
Webclient 16 nach einem Zugriff auf eine nichtsichere Webseite 34 das Übertragungsprotokoll
auf HTTP umgeschaltet wird.
-
Ein
anderer Prozess wird zum Erstellen eines Gastclientkontos oder eines
Sitzungscookie verwendet, wenn der Webclient 16 zum ersten
Mal auf die Web-Site 20 zugreift oder diese erneut besucht,
kein Sitzungscookie 40 aufweist und kein registrierter
Client 46 ist. Der Pseudocode für diesen Prozess wird als Prozess
B gezeigt.
-
Prozess
B: Gastkonto und Sitzungscookie erstellen
-
Der
Prozess B beginnt, wenn der Webserver 12 einen Gastclienteintrag
in der Tabelle 36 USER_SESSION erstellt, indem er einen neuen Datensatz
hinzufügt.
Die Erstellung eines neuen Datensatzes in der Tabelle 36 USER_SESSION
beinhaltet das Erzeugen eines neuen Schlüsselwertes und das Speichern desselben
in USER_ID 50 im neu erstellten Datensatz in der Tabelle
36 USER_SESSION. Als Nächstes
wird für
den neu erstellten Gastclienteintrag "Gast" oder
ein anderer geeigneter Kennzeichner in USER_TYPE 60 gespeichert.
Die Daten, vorzugsweise eine Zeichenfolge, für SESSION_ID 52 werden
sodann vom zuvor beschriebenen Verschlüsselungszufallsgenerator nach
dem Zufallsprinzip erzeugt und in SESSION_ID 52 gespeichert.
Als Nächstes
werden die Daten für
SESSION_TIMESTAMP 54 berechnet und in SESSION_TIMESTAMP 54 gespeichert.
Anschließend
wird vorzugsweise die nicht umkehrbare MD5-Quersummenfunktion auf
die Verkettung der in SESSION_ID 52 und SESSION_TIMESTAMP 54 enthaltenen
Daten angewandt (die in SESSION_TIMESTAMP 54 enthaltenen
Daten werden an die in SESSION_ID 52 enthaltenen Daten
angehängt).
Alternativ kann eine andere Hash-Funktion angewandt werden. Nach
dem Stand der Technik sind zahlreiche Hash-Funktionen allgemein
bekannt, eine grundlegende Quellenangabe ist "The Art of Computer Programming, Volume
3: Searching and Sorting",
von Donald E. Knuth, wobei Professor Knuth eine zukunftsweisende
Erläuterung
der mathematischen Grundlagen der Erstellung einer Hash-Funktion
bereitstellt. Das Ergebnis der MD5-Quersummenfunktion wird mit den
in USER_ID 50 enthaltenen Daten verkettet und im Attribut
NAME des Sitzungscookie 40 gespeichert. Der Webserver 12 ordnet
sodann die anderen Attribute des Sitzungscookie 40 zu und überträgt das Sitzungscookie 40 an
den Web-Browser des Webclient 16.
-
Ein
anderer Komponentenprozess wird zur Erzeugung des Berechtigungscode-Cookie 42 verwendet. Dies
findet normalerweise statt, wenn der Gastclient 44 den
Zugriff auf eine sichere Webseite 32 anfordert und das Übertragungsprotokoll
HTTPS verwendet, jedoch kein Berechtigungscode-Cookie 42 hat.
Der Pseudocode für
diesen Prozess wird als Prozess C gezeigt.
-
Prozess
C: Erzeugen eines Berechtigungscode-Cookie.
-
Der
Prozess C beginnt mit dem Entnehmen von Daten aus dem Attribut NAME
des Sitzungscookie 40, die den in USER_ID 50 gespeicherten
Daten entsprechen. Diese Daten werden sodann als ein Schlüssel für die Tabelle
36 USER_SESSION verwendet, um festzustellen, ob für einen
Gastclient 44 ein Berechtigungscode in AUTHCODE 56 enthalten
ist. Falls ein Berechtigungscode in AUTHCODE 56 enthalten
ist, ist der Webclient 16 möglicherweise ein unberechtigter
Benutzer, folglich weist der Webserver 12 die Anforderung
zurück, erzeugt
eine Fehlerwebseite und überträgt diese
an den Web-Browser
des Gastclient 44. Falls AUTHCODE 56 andererseits
leer ist, werden Daten für
AUTHCODE 56, vorzugsweise eine Zeichenfolge oder eine ganze Zahl,
vom zuvor beschriebenen Verschlüsselungszufallsgenerator
nach dem Zufallsprinzip erzeugt. Diese Daten werden sodann in AUTHCODE 56 gespeichert.
Als Nächstes
wird der aktuelle Zeitstempel in AUTHCODE_TIMESTAMP 58 gespeichert.
Anschließend
wird die nicht umkehrbare MD5-Quersummenfunktion vorzugsweise auf
die Verkettung der in AUTHCODE 56 und AUTHCODE_TIMESTAMP 58 enthaltenen Daten
angewandt (die in AUTHCODE_TIMESTAMP 58 enthaltenen Daten
werden an die in AUTHCODE 56 enthaltenen Daten angehängt). Alternativ
kann eine andere als die oben beschriebene Hash-Funktion verwendet
werden. Das Ergebnis der MD5-Quersummenfunktion wird sodann im Attribut
NAME des Berechtigungscode-Cookie 42 gespeichert. Die restlichen
Attribute des Berechtigungscode-Cookie 42 werden zugeordnet, und
der Webserver 12 überträgt sodann
das Berechtigungscode-Cookie 42 an
den Web-Browser des Gastclient 44.
-
Ein
anderer Komponentenprozess bearbeitet den Fall, wenn der Gastclient 44 beim
Blättern
in der Web-Site 20 entscheidet, ein registrierter Client 46 zu
werden. Der Pseudocode wird im Folgenden als Prozess D gezeigt.
-
Prozess
D: Gastclient entscheidet, ein registrierter Client zu werden.
-
Der
Prozess D beginnt mit dem Leiten des Gastclient 44 zu einer
Registrierungswebseite, wo vertrauliche Daten bereitgestellt und
eine Anmeldekennung und ein Passwort ausgewählt werden. Anschließend werden
Daten aus dem Attribut NAME des Sitzungscookie 40 entnommen
und zum Zugreifen auf den korrekten Gastclienteintrag in der Tabelle
36 USER_SESSION verwendet. Der Wert in USER_TYPE 60 wird
sodann zu "registriert" oder einem anderen
geeigneten Kennzeichner für
den Gastclient 44 geändert.
Der Gastclient 44 wird nun als registrierter Client 460 betrachtet.
Der Zeitstempel in SESSION_TIMESTAMP 54 wird aktualisiert. Das
Sitzungscookie 40 wird sodann unter Verwendung der neuen
in SESSION_TIMESTAMP 54 enthaltenen Daten geändert. Falls
das Berechtigungscode-Cookie 42 nicht vorhanden ist, wird
es als Nächstes
erzeugt, andernfalls wird es geändert.
Das Berechtigungscode-Cookie 42 wird sodann geändert, indem
der in AUTHCODE_TIMESTAMP 58 gespeicherte Zeitstempel aktualisiert
und dieser aktualisierte Zeitstempel zum Ändern des Attributs NAME des Berechtigungscode-Cookies 42 verwendet
wird. Das Sitzungscookie 40 und das Berechtigungscode-Cookie 42 werden
sodann an den Web-Browser des registrierten Client 46 übertragen.
Die Anmeldekennung, das Passwort und andere wichtige, vom registrierten
Client 46 eingegebene Daten werden sodann aus den bei der
Registrierungswebseite eingegebenen Daten erhalten. Die Anmeldekennung wird
in LOGIN_ID 62 in der Tabelle 36 USER_SESSION und das Passwort
in PASSWORD 64 in der Tabelle 36 USER_SESSION gespeichert.
Andere erhaltene Daten werden anderer Stelle in der Datenbank 24 gespeichert.
-
Ein
anderer Komponentenprozess bearbeitet die Situation, in der sich
ein bereits bei der Web-Site 20 registrierter Gastclient 44 anmeldet,
um als ein registrierter Client 46 erkannt zu werden. Der
Pseudocode wird als Prozess E gezeigt.
-
Prozess
E: Gastclient meldet sich als registrierter Client an.
-
Der
Prozess E beginnt, wenn der Gastclient 44 zu einer Anmeldewebseite
auf der Web-Site 20 geleitet wird, wo er seine Anmeldekennung
und sein Passwort eingibt. Falls die Anmeldekennung und das Passwort ungültig sind,
benachrichtigt der Webserver 12 den Gastclient 44,
dass entweder eine ungültige
Anmeldekennung und/oder ein ungültiges
Passwort eingegeben wurde und dass der Gastclient 44 diese
Daten erneut eingeben muss. Wie Fachleute verstehen werden, kann
der Anmeldeprozess nach einer bestimmten Anzahl von ungültigen Versuchen
beendet werden. Wenn die korrekte Anmeldekennung und das korrekte
Passwort eingegeben wurden, werden diese zum Suchen des korrekten
Gastclienteintrags in der Tabelle 36 USER_SESSION verwendet. Als
Nächstes
wird der Zeitstempel in SESSION_TIMESTAMP 54 aktualisiert, und
anschließend
wird das Sitzungscookie 40 auf der Grundlage dieses neuen
Zeitstempelwertes aktualisiert. Als Nächstes wird der Zeitstempel
in AUTHCODE_TIMESTAMP 58 aktualisiert, und anschließend wird
das Berechtigungscode-Cookie 42 auf der Grundlage dieses
neuen Zeitstempelwertes aktualisiert. Als Nächstes werden das Sitzungscookie 40 und
das Berechtigungscode-Cookie 42 an den Web-Browser des
Gastclient 44 übertragen.
Der letzte Schritt ist ein optionaler Schritt zum Löschen des
Gastclientkontos, das beim ersten Zugriff auf die Web-Site 20 für den Gastclient 44 eingerichtet
wurde. Alternativ kann der Verwalter der Web-Site 20 andere
I Dienstprogramme verwenden, die vom Webserver-Softwarepaket 18 bereitgestellt
werden, um veraltete Gastclientkonten zu entfernen (d.h. Konten,
die eine festgelegte Zeitspanne, z.B. zwei Tage, nicht verwendet
werden).
-
Ein
anderer Komponentenprozess wird zur Überprüfung des Sitzungscookie 40 verwendet,
wenn der Webclient 16 den Zugriff auf eine nichtsichere
Webseite 34 auf der Web-Site 20 anfordert. Dieser
Prozess stellt sicher, dass das Sitzungscookie 40 nicht
gefälscht
wurde. Der Pseudocode wird im Folgenden als Prozess F gezeigt.
-
Prozess
F: Sitzungscookie-Überprüfung.
-
Der
Prozess F beginnt mit der Entnahme von Daten aus dem Attribut NAME
des Sitzungscookie 40, die den in USER_ID 50 gespeicherten
Daten entsprechen. Diese Daten werden sodann zum Suchen des Eintrags
für den
Webclient 16 in der Tabelle 36 USER_SESSION verwendet,
um die gespeicherten Werte in SESSION_ID 52 und SESSION_TIMESTAMP 54 zu
erhalten. Diese gespeicherten Werte werden zum Erneuern des Sitzungscookie 40 verwendet.
Das erneuerte Sitzungscookie 40 wird sodann mit dem vom
Webclient 16 bereitgestellten Sitzungscookie 40 verglichen.
Falls der Vergleich eine Übereinstimmung
ergibt, wird die Anforderung des Webclient 16 verarbeitet.
Falls der Vergleich jedoch keine Übereinstimmung ergibt, ist
der Webclient 16 möglicherweise
ein unberechtigter Benutzer, folglich weist der Webserver 12 die
Anforderung des Webclient 16 zum Zugriff auf die nichtsichere-Webseite 34 zurück und überträgt eine
Fehlerwebseite an den Web-Browser des Webclient 16.
-
Ein
anderer Komponentenprozess wird zur Überprüfung des Berechtigungscode-Cookie 42 verwendet,
wenn der Webclient 16 den Zugriff auf eine sichere Webseite 32 auf
der Web-Site 20 anfordert. Durch diesen Prozess wird sichergestellt,
dass das Berechtigungscode-Cookie 42 nicht gefälscht wurde.
In diesem Prozess verwendet der Webclient 16 das Übertragungsprotokoll
HTTPS und hat sowohl das Sitzungscookie 40 als auch das
Berechtigungscode-Cookie 42. Der Pseudocode wird im Folgenden
als Prozess G gezeigt.
-
Prozess
G: Überprüfung des
Berechtigungscode-Cookie.
-
Der
Prozess G beginnt mit dem Entnehmen von Daten aus dem Attribut NAME
des Sitzungscookie 40, die den in USER_ID 50 gespeicherten
Daten entsprechen. Diese Daten werden sodann zum Suchen des Eintrags
für den
Webclient 16 in der Tabelle 36 USER_SESSION verwendet,
um die in AUTHCODE 56 und AUTHCODE_TIMESTAMP 58 gespeicherten
Werte zu erhalten. Diese gespeicherten Werte werden zum Erneuern
des Berechtigungscode-Cookie 42 verwendet.
Das erneuerte Berechtigungscode-Cookie 42 wird sodann mit
dem vom Webclient 16 bereitgestellten Berechtigungscode-Cookie 42 verglichen.
Falls der Vergleich eine Übereinstimmung
ergibt, verarbeitet der Webserver 12 die Anforderung des
Webclient 16. Falls der Vergleich jedoch keine Übereinstimmung
ergibt, ist der Webclient 16 möglicherweise ein unberechtigter
Benutzer, folglich weist der Webserver 12 die Anforderung
des Webclient 16 nach einem Zugriff auf eine sichere Webseite 32 zurück und überträgt eine
Fehlerwebseite an den Web-Browser des Webclient 16.
-
Ein
anderer Komponentenprozess wird verwendet, um den Fall zu bearbeiten,
wenn sich der registrierte Client 46 von der Web-Site 20 abmeldet.
Der Pseudocode wird im Folgenden als Prozess H gezeigt.
-
Prozess
H: Registrierter Client meldet sich ab.
-
Der
Prozess H beginnt, wenn der registrierte Client 46 entscheidet,
sich von der Web-Site 20 abzumelden. Als Nächstes aktualisiert
der Webserver 12 das Sitzungscookie 40 und das
Berechtigungscode-Cookie 42, so dass alle Attribute NULL-Werte
enthalten. Anschließend überträgt der Webserver 12 das Sitzungscookie 40 und
das Berechtigungscode-Cookie 42 an den Web-Browser des
registrierten Client 46. Alternativ kann sich der registrierte
Client 46 nicht abmelden und einfach eine andere Web-Site
besuchen, wobei in diesem Fall sowohl das Sitzungscookie 40 als
auch das Berechtigungscode-Cookie 42 im Speicher des vom registrierten
Client 46 verwendeten Web-Browser bleiben. Falls der registrierte
Client 46 die Web-Site 20 erneut besucht, rücküberträgt dessen
Web-Browser das Sitzungscookie 40 an den Webserver 12.
Alternativ kann der registrierte Client 46 seine Web-Browser-Anwendung einfach
verlassen, ohne sich von der Web-Site 20 abzumelden, wobei
in diesem Fall das Sitzungscookie 40 und das Berechtigungscode-Cookie 42 zerstört werden,
da sie vorzugsweise zeitweilige Cookies sind.
-
Ein
anderer Komponentenprozess bearbeitet die Situation, in der ein
registrierter Client 46 den Zugriff auf eine sichere Webseite 32 anfordert,
jedoch kein Berechtigungscode-Cookie 42 besitzt. Der Pseudocode wird
im Folgenden als Prozess I gezeigt.
-
Prozess
I: Registrierter Client greift ohne Berechtigungscode-Cookie auf sichere
Webseite zu.
-
Der
Prozess I beginnt, wenn der Webclient 16, der bereits bei
der Web-Site 20 registriert (d.h. ein zuvor registrierter
Webclient 16) ist, auf eine sichere Webseite 32 zuzugreifen
versucht, sich jedoch noch nicht bei der Web-Site 20 angemeldet
hat, um anzuzeigen, dass er ein registrierter Client 46 ist.
Als Nächstes
wird der zuvor registrierte Webclient 16 überprüft, um festzustellen,
ob er ein Berechtigungscode-Cookie 42 aufweist. Da der
zuvor registrierte Webclient 16 kein Berechtigungscode-Cookie 42 aufweist,
wird er veranlasst, sich durch Eingabe seiner Anmeldekennung und
seines Passwortes auf der Anmeldewebseite bei der Web-Site 20 anzumelden.
Als Nächstes
werden die Anmeldekennung und das Passwort überprüft. Falls die Überprüfung fehlschlägt, weist
der Webserver 12 die Anforderung des zuvor registrierten
Webclient 16 nach dem Zugriff auf eine sichere Webseite 32 zurück und überträgt eine
Fehlerwebseite an den Web-Browser des zuvor registrierten Webclient 16.
Falls die Anmeldekennung und das Passwort jedoch gültig sind,
wird das Berechtigungscode-Cookie 42 erzeugt und an den
Web-Browser des zuvor registrierten Webclient 16 übertragen.
Der zuvor registrierte Webclient wird sodann als ein registrierter
Client 46 erkannt. Der Anforderung des registrierten Client 46 nach
dem Zugriff auf eine sichere Webseite 32 wird sodann stattgegeben.
-
In
der Praxis gibt es drei allgemeine Verwendungsszenarios für die Web-Site 20 gemäß dem in
der vorliegenden Erfindung dargelegten Sitzungsverwaltungs- und
Berechtigungsschema. Im Allgemeinen greift jeder Webclient 16 auf
die Web-Site 20 zu und ist während der gesamten Sitzung
mit der Web-Site 20 ein Gastclient 44 (siehe 4a und 4b),
oder der Webclient 16 greift auf die Web-Site 20 zu
und wird ein registrierter Client 46 (siehe 5a, 5b und 5c),
oder der Webclient 16 greift auf die Web-Site 20 zu,
ist bereits registriert und meldet sich als ein registrierter Client 46 an
(siehe 6a und 6b). Obwohl
die 4a, 4b, 5a, 5b, 5c, 6a und 6b den
Webclient 16 zeigen, wie er zuerst auf eine Vielzahl von
nichtsicheren Webseiten 34 und anschließend auf eine Vielzahl von
sicheren Webseiten 32 zugreift, ist zu beachten, dass auch
das Gegenteil der Fall sein kann, d.h., der Webclient 16 kann
zuerst auf eine Vielzahl von sicheren Webseiten 32 und
anschließend
auf eine Vielzahl von nichtsicheren Webseiten 34 zugreifen.
Alternativ kann der Webclient 16 Anforderungen nach nichtsicheren
Webseiten 34 und sicheren Webseiten 32 abwechseln.
In der Praxis kann es viele Anwendungsfälle geben, der Einfachheit
halber werden in den 6 bis 8 nur einige gezeigt.
-
Mit
Bezugnahme auf die 4a und 4b beginnt
das Szenario beim Schritt 80, in dem der Webclient 16 auf
die Web-Site 20 zugreift. Standardmäßig ist der Webclient 16 als
ein Gastclient 44 definiert. Als Nächstes werden im Schritt 82 ein
Gastclientkonto in der Tabelle 36 USER_SESSION und ein Sitzungscookie 40 für den Gastclient 44 erstellt.
Anschließend
fordert der Gastclient 44 im Schritt 84 den Zugriff
auf eine nichtsichere Webseite 34 an. Im Schritt 86 wird
sodann das Sitzungscookie 40 überprüft. Falls das Sitzungscookie 40 ungültig ist,
geht die Steuerung weiter zum Schritt 88, wo der Webserver 12 die
Anforderung des Gastclient 44 nach dem Zugriff auf eine
nichtsichere Webseite 34 zurückweist und eine Fehlerwebseite
an den Web-Browser des Gastclient 44 überträgt. Falls das Sitzungscookie 40 gültig ist,
geht die Steuerung zum Schritt 90, wo der Gastclient 44 auf
die nichtsichere Webseite 34 zugreift. Anschließend kann
der Gastclient 44 auf eine Anzahl von nichtsicheren Webseiten 34 zugreifen,
wobei die Überprüfung des
Sitzungscookie 40 bei jeder Zugriffsanforderung stattfindet.
Schließlich
fordert der Gastclient 44 im Schritt 94 den Zugriff
auf eine sichere Webseite 32 an. Der Webserver 12 führt sodann
im Schritt 95 eine Prüfung
aus, um festzustellen, ob der Gastclient 44 HTTPS verwendet.
Falls HTTPS nicht verwendet wird, benachrichtigt der Webserver 12 im Schritt 96 den
Web-Browser des Gastclient 44, dass HTTPS verwendet werden
muss. Falls keine HTTPS-Verbindung
bestätigt
wird, weist der Webserver 12 im Schritt 98 die
Anforderung des Gastclient 44 nach dem Betrachten der sicheren
Webseite 32 zurück
und überträgt im Schritt 100 eine
Fehlerwebseite an den Web-Browser des Gastclient 44. Falls
der Gastclient 44 HTTPS verwendet, prüft der Webserver 12 im
Schritt 102, ob der Gastclient 44 ein Berechtigungscode-Cookie 42 benötigt, indem
er überprüft, ob in
AUTHCODE 56 in der Tabelle 36 USER_SESSION ein Berechtigungscode
vorhanden ist. Falls der Gastclient 44 bereits einen Berechtigungscode
hat, geht die Steuerung weiter zum Schritt 104, wo der
Webserver 12 die Anforderung des Gastclient 44 nach
dem Zugriff auf die sichere Webseite 32 zurückweist,
da der Gastclient 44 an dieser Stelle möglicherweise ein unberechtigter
Benutzer ist, und eine Fehlerwebseite an den Web-Browser des Gastclient 44 überträgt. Falls
der Gastclient 44 jedoch keinen Berechtigungscode aufweist,
geht die Steuerung weiter zum Schritt 106, wo das Berechtigungscode-Cookie 42 erzeugt
und an den Gastclient 44 übertragen wird. Der Gastclient 44 kann
sodann auf die sichere Webseite 32 zugreifen. Als Nächstes fordert
der Gastclient 44 im Schritt 108 den Zugriff auf
eine andere sichere Webseite 32 auf der Web-Site 20 an,
wobei das Berechtigungscode-Cookie 42 des Gastclient 44 im
Schritt 110 überprüft wird,
um festzustellen, ob es gültig
ist. Falls das Berechtigungscode-Cookie 42 ungültig ist,
geht der Prozess zum Schritt 112, wo der Webserver 12 die
Anforderung nach dem Zugriff auf die sichere Webseite 32 zurückweist
und eine Fehlerwebseite an den Web-Browser des Gastclient 44 überträgt. Falls
das Berechtigungscode-Cookie 42 andererseits gültig ist,
kann der Gastclient 44 im Schritt 114 auf die
sichere Webseite 32 zugreifen. Der Gastclient 44 kann
sodann auf eine Anzahl von anderen sicheren Webseiten 32 zugreifen,
wobei bei jeder Zugriffsanforderung eine Überprüfung des Berechtigungscode-Cookie 42 stattfindet.
Als Nächstes
tätigt
der Gastclient 44 im Schritt 118 einige Einkäufe und bezahlt
im Schritt 120 alle eingekauften Waren und stellt die Versanddaten
bereit. Anschließend
verlässt
der Gastclient 44 im Schritt 122 die Web-Site 20,
indem er einfach seinen Web-Browser schließt oder auf eine andere Web-Site
zugreift. Sobald der Web-Browser des Gastclient 44 geschlossen
worden ist, werden das Sitzungscookie 40 und das Berechtigungscode-Cookie 42 gelöscht, da
sie zeitweilige Cookies sind.
-
Mit
Bezugnahme auf die 5a, 5b und 5c beginnt
das Szenario beim Schritt 130, in dem der Webclient 16 auf
die Web-Site 20 zugreift. Standardmäßig ist der Webclient 16 als
ein Gastclient 44 definiert. Als Nächstes werden im Schritt 132 ein
Gastclientkonto in der Tabelle 36 USER_SESSION und auch das Sitzungscookie 40 erstellt.
Das Sitzungscookie 40 wird sodann an den Web-Browser des
Gastclient 44 übertragen.
Im Schritt 134 entscheidet der Gastclient 44 sodann,
ein registrierter Client 46 zu werden. Der Webserver 12 führt sodann
im Schritt 136 eine Prüfung
aus, um festzustellen, ob der Gastclient 44 HTTPS verwendet. Falls
nicht, geht der Prozess zum Schritt 138, wo der Webserver 12 den
Web-Browser des Gastclient 44 benachrichtigt, dass HTTPS
verwendet werden muss. Im Schritt 140 wird die Verwendung
einer HTTPS-Verbindung überprüft. Falls
HTTPS nicht verwendet wird, geht der Prozess zum Schritt 142,
wo der Webserver 12 die Anforderung des Gastclient 44,
ein registrierter Benutzer zu werden, zurückweist und eine Fehlerwebseite an
den Web-Browser des Gastclient 44 überträgt. Falls HTTPS vom Gastclient 44 verwendet
wird, geht die Steuerung weiter zum Schritt 144, wo das
Berechtigungscode-Cookie 42 für den Gastclient 44 erzeugt
wird. Als Nächstes
wird der Gastclient 44 im Schritt 146 zu einer
Registrierungswebseite auf der Web-Site 20 geleitet, wo er
Clientdaten bereitstellt. Im Schritt 148 wird ein Konto
für einen
registrierten Client erstellt, und der Gastclient 44 wird
ein registrierter Client 46. Der registrierte Client 46 kann
sodann auf nichtsichere Webseiten 34 zugreifen, wie im
Schritt 150 gezeigt wird, wobei der Webserver 12 an
dieser Stelle im Schritt 152 das Sitzungscookie 40 des
registrierten Client 46 überprüft. Falls das Sitzungscookie 40 ungültig ist,
geht die Steuerung weiter zum Schritt 154, wo der Webserver 12 die
Anforderung des registrierten Client 46 nach dem Zugriff auf
die nichtsichere Webseite 34 zurückweist und eine Fehlerwebseite
an den Web-Browser des registrierten Client 46 überträgt. Falls
das Sitzungscookie 40 andererseits gültig ist, kann der registrierte
Client 46 im Schritt 156 auf die nichtsichere
Webseite 34 zugreifen. Anschließend kann der registrierte
Client 46 weiterhin auf andere nichtsichere Webseiten 34 zugreifen,
wobei bei jeder Zugriffsanforderung eine Überprüfung des Sitzungscookie 40 stattfindet.
Im Schritt 160 fordert der registrierte Client 46 den
Zugriff auf die sichere Webseite 32 an, woraufhin der Webserver 12 im
Schritt 162 feststellt, ob der registrierte Client 46 HTTPS
verwendet. Falls HTTPS nicht verwendet wird, benachrichtigt der
Webserver 12 im Schritt 164 den Web-Browser des
registrierten Client 46, auf HTTPS umzuschalten. Im Schritt 166 wird
sodann die Verwendung von HTTPS überprüft. Falls der
registrierte Client 46 kein HTTPS verwendet, geht der Prozess
zum Schritt 168, wo der Webserver 12 die Anforderung
des registrierten Client 46 nach dem Zugriff auf die sichere
Webseite 32 zurückweist
und eine Fehlerwebseite an den Web-Browser des registrierten Client 46 überträgt. Falls
andererseits HTTPS verwendet wird, geht die Steuerung weiter zum
Schritt 170, wo der Webserver 12 das Berechtigungscode-Cookie 42 überprüft. Falls,
das Berechtigungscode-Cookie 42 ungültig ist, geht der Prozess
zum Schritt 172, wo der Webserver 12 die Anforderung
des registrierten Client 46 nach dem Zugriff auf die sichere
Webseite 32 zurückweist und
eine Fehlerwebseite an den Web-Browser
des registrierten Client 46 überträgt. Falls das Berechtigungscode-Cookie 42 andererseits
gültig
ist, kann der registrierte Client 46 im Schritt 174 auf
die sichere Webseite 32 zugreifen. Anschließend kann
der registrierte Client 46 weiterhin auf eine Anzahl von
sicheren Webseiten 32 zugreifen, wobei bei jeder Zugriffsanforderung
eine Überprüfung des
Berechtigungscode-Cookie 42 stattfindet. Außerdem kann
der registrierte Client 46 Einkäufe tätigen, wie im Schritt 178 zu
sehen ist. Falls der registrierte Client 46 Einkäufe tätigt, bezahlt
er im Schritt 180 für
die Einkäufe,
und der Webserver 12 speichert Daten über die getätigten Einkäufe in der Datenbank 24.
Als Nächstes
meldet sich der registrierte Client 46 im Schritt 182 von
der Web-Site 20 ab, greift auf eine andere Web-Site zu
oder verlässt
einfach seine Web-Browser-Anwendung.
Unabhängig
von der vom registrierten Client 46 getroffenen Wahl werden
das Sitzungscookie 40 und das Berechtigungscode-Cookie 42 zerstört, sobald
der registrierte Client 46 seine Web-Browser-Anwendung
verlassen hat, da sie vorzugsweise als zeitweilige Cookies definiert
werden.
-
Mit
Bezugnahme auf die 6a und 6b beginnt
das Szenario beim Schritt 190, in dem der Webclient 16,
der sich bereits bei der Web-Site 20 registriert hat, auf
diese zugreift. Der Webclient 16 wird standardmäßig als
Gastclient 44 definiert. Anschließend wird ein Gastclientkonto
in der Tabelle 36 USER_SESSION erstellt, und das Sitzungscookie 40 wird
erzeugt und an den Gastclient 44 übertragen. Der Gastclient 44 entscheidet
sodann im Schritt 192, sich anzumelden, wobei der Webserver 12 an
dieser Stelle im Schritt 194 feststellen muss, ob der Gastclient 44 HTTPS
verwendet. Falls nicht, benachrichtigt der Webserver 12 im
Schritt 196 den Web-Browser des Gastclient 44,
dass HTTPS verwendet werden muss. Im Schritt 198 wird die
Verwendung von HTTPS überprüft. Falls
HTTPS nicht verwendet wird, geht der Prozess zum Schritt 200,
wo der Webserver 12 die Anforderung des Gastclient 44 nach
dem Anmelden zurückweist
und eine Fehlerwebseite an den Web-Browser des Gastclient 44 überträgt. Falls
der Gastclient 44 andererseits HTTPS verwendet, geht der
Prozess zum Schritt 202, wo das Berechtigungscode-Cookie 42 erzeugt
oder aktualisiert und an den Web-Browser des Gastclient 44 übertragen
wird. Als Nächstes
meldet sich der Gastclient 44 im Schritt 204 an
und wird zum registrierten Client 46. Im Schritt 206 kann
der registrierte Client 46 sodann auf eine nichtsichere
Webseite 34 auf der Web-Site 20 zugreifen, wobei
der Webserver 12 an dieser Stelle im Schritt 208 das
Sitzungscookie 40 überprüft. Falls
die Überprüfung fehlschlägt, geht
der Prozess zum Schritt 210, wo der Webserver 12 die
Anforderung des registrierten Client 46 nach dem Zugriff
auf die nichtsichere Webseite 34 zurückweist und eine Fehlerwebseite
an den Web-Browser des registrierten Client 46 überträgt. Falls
das Sitzungscookie 40 andererseits gültig ist, geht der Prozess
zum Schritt 212, wo der registrierte Client 46 auf
die nichtsichere Webseite 34 zugreift. Anschließend kann
der registrierte Client 46 weiterhin auf eine Anzahl von
nichtsicheren Webseiten 34 zugreifen, wobei bei jeder Zugriffsanforderung
eine Überprüfung des Sitzungscookie 40 stattfindet.
Als Nächstes
fordert der registrierte Client 46 im Schritt 216 den
Zugriff auf eine sichere Webseite 32 an. Im Schritt 218 führt der
Webserver 12 sodann eine Prüfung aus, um festzustellen,
ob der registrierte Client 46 HTTPS verwendet. Falls HTTPS
nicht verwendet wird, benachrichtigt der Webserver 12 im
Schritt 220 den registrierten Client 46, dass
HTTPS verwendet werden muss. Im Schritt 222 wird die Verwendung
von HTTPS überprüft. Falls
kein HTTPS verwendet wird, geht der Prozess zum Schritt 224,
wo der Webserver 12 die Anforderung des registrierten Client 46 nach
dem Zugriff auf die sichere Webseite 32 zurückweist
und eine Fehlerwebseite an den Web-Browser des registrierten Client 46 überträgt. Falls
der registrierte Client 46 andererseits HTTPS verwendet,
geht der Prozess zum Schritt 226, wo das Berechtigungscode-Cookie 42 überprüft wird.
Falls die Überprüfung fehlschlägt, geht
der Prozess zum Schritt 228, wo der Webserver 12 die
Anforderung des registrierten Client 46 nach dem Zugriff
auf die sichere Webseite 32 zurückweist und eine Fehlerwebseite
an den Web-Browser des registrierten Client 46 überträgt. Falls
die Überprüfung andererseits
erfolgreich ist, kann der registrierte Client 46 im Schritt 230 auf
die sichere Webseite 32 zugreifen. Außerdem kann der registrierte
Client 46 Einkäufe
tätigen
und/oder sein Bestellprotokoll prüfen, wie im Schritt 234 gezeigt
wird. Falls Einkäufe
getätigt
werden, bezahlt der registrierte Client 46 für diese
Einkäufe, und
der Webserver 12 speichert im Schritt 236 Daten über diese
Einkäufe
in der Datenbank 24. Anschließend kann der registrierte
Client 46 die Web-Site 20 im Schritt 238 verlassen,
indem er sich abmeldet, auf eine andere Web-Site zugreift oder einfach
seine Web-Browser-Anwendung
verlässt.
Unabhängig
von der vom registrierten Client 46 getroffenen Wahl werden
das Sitzungscookie 40 und des Berechtigungscode-Cookie 42 zerstört, sobald
der registrierte Client 46 seine Web-Browser-Anwendung
verlässt,
da sie vorzugsweise als zeitweilige Cookies definiert werden.
-
Das
in der vorliegenden Erfindung realisierte System und das Verfahren
sind so gestaltet, dass der Zugriff auf sensitive Daten über die
Web-Site 20 oder den Webclient 16 durch unberechtigte
Benutzer verhindert wird. Falls der Webclient 16 beispielsweise
ein Gastclient 44 ohne Berechtigungscode-Cookie 42 ist,
d.h., der Gastclient 44 hat nicht auf irgendeine sichere
Webseite 32 zugegriffen, werden dem Gastclient 44 keine sicheren
Daten zugeordnet. Der unberechtigte Benutzer kann in diesem Fall
nichts Schädliches
unternehmen. Eine andere Situation läge vor, wenn der Webclient 16 ein
Gastclient 44 mit einem Berechtigungscode-Cookie 42 ist
(d.h., der Webclient 16 hat bereits auf eine sichere Webseite 32 zugegriffen).
In diesem Fall schlägt
der Versuch eines unberechtigten Benutzers fehl, da dieser lediglich
das Sitzungscookie 40 verwenden kann, kein Berechtigungscode-Cookie 42 hat
und der Webserver 12 bereits weiß, dass der Gastclient 44 ein
Berechtigungscode-Cookie 42 hat (indem er AUTHCODE 56 in
der Tabelle 36 USER_SESSION überprüft). Eine
andere Situation läge
vor, wenn der Webclient 16 ein registrierter Client 46 ist
und ein unberechtigter Benutzer versucht, das Sitzungscookie 40 zu
verwenden, um in sicheren Webseiten 32 zu blättern. Da
der unberechtigte Benutzer kein Berechtigungscode-Cookie 42 hat,
leitet der Webserver 12 diesen zur Anmeldewebseite um, wobei
der unberechtigte Benutzer sich an dieser Stelle nicht anmelden
kann, da er weder die Anmeldekennung noch das Passwort des registrierten
Client 46 hat.
-
Zusammenfassend
gesagt ermöglicht
die vorliegende Erfindung sowohl die Verwendung eines nichtsicheren
(HTTP) als auch eines sicheren (HTTPS) Übertragungsprotokolls, wenn
ein Webclient auf eine nichtsichere bzw. eine sichere Webseite auf einer
Web-Site zugreift. Dies schafft die Voraussetzungen für eine sichere
und leistungsfähige
Sitzung zwischen dem Webclient und der Web-Site. Außerdem werden
zwei verschiedene Cookies verwendet, ein Sitzungscookie (zur Sitzungsverwaltung)
und ein Berechtigungscode-Cookie (zur Berechtigungsüberprüfung). Das
Sitzungscookie ist außerdem
so gestaltet, dass es keine sensitiven Daten über den Webclient enthält. Schließlich ermöglicht die
Web-Site den Zugriff eines Gastclient oder eines registrierten Client,
wodurch die Flexibilität
und der Anklang, den die Web-Site bei Benutzern findet, erhöht werden.
-
Es
sei darauf hingewiesen, dass es trotz der Beschreibung der vorliegenden
Erfindung im Kontext einer Web-Site des elektronischen Handels nicht
die Absicht des Erfinders ist, die Verwendung der vorliegenden Erfindung
auf die ausschließliche
Verwendung im elektronischen Handel zu begrenzen. Beispielsweise
kann die vorliegende Erfindung zum Sichern des Datenaustauschs für Funktionen
verwendet werden, die nicht aus dem Bereich des elektronischen Handels
stammen, zum Beispiel für
Online-Abstimmungen, die Ausgabe von Kreditkartennummern, Online-Aktienhandel
und dergleichen.
-
Außerdem kann
die vorliegende Erfindung problemlos an die Verwendung von Name-Werte-Paaren zur
Berechtigungsüberprüfung und
Sitzungsverwaltung zwischen der Web-Site und dem Webclient angepasst werden,
indem der Webserver 12 zum Erzeugen eines Name-Werte-Paars
für eine
Sitzung und zum Weiterleiten desselben an jede Webseite 22 auf
der Web-Site 20 veranlasst wird. Außerdem erzeugt der Webserver 12 ein
Name-Werte-Paar als Berechtigungscode und leitet dieses an jede
sichere Webseite 32 auf der Web-Site 20 weiter.