-
Diese Erfindung betrifft allgemein die passwortgestützte Berechtigungsprüfung in Datenverarbeitungssystemen, wobei ein Zugriff auf eine Ressource in Abhängigkeit von einer Berechtigungsprüfung von Benutzerpasswörtern gesteuert wird. Mehrfachserversysteme werden zum Berechtigungsprüfen von Benutzerpasswörtern zusammen mit entsprechenden Verfahren, Komponentenservern und Computerprogrammen zum Konfigurieren der Server bereitgestellt.
-
Passwörter sind der häufigste Mechanismus zur Benutzerberechtigungsprüfung in Datenverarbeitungssystemen. Für eine lange Zeit waren Phishing-Angriffe und Tastenanschlagprotokollierungs-Schadsoftware auf Benutzercomputern die bevorzugten Verfahren für Hacker, um große Anzahlen von Passwörtern an sich zu bringen. In jüngerer Zeit scheint die Hauptgefahr für die Passwortsicherheit jedoch von Serverkompromittierung herzurühren. Allein 2012 wurden mehrere zehn Millionen von Passwörtern als auf diese Weise verloren berichtet, wobei die Hauptdatenlücken auf verschiedenen beliebten Webseiten auftraten.
-
Bei herkömmlichen passwortgestützten Berechtigungsprüfungssystemen stellen Benutzer eine Verbindung mit einem Server her, der den Zugriff zur geschützten Ressource steuert und eine Datenbank von Benutzer-IDs, z. B. Benutzernamen, mit deren zugehörigen, in Hashform gespeicherten Benutzerpasswörtern pflegt. Bei Empfang einer Benutzer-ID und eines Eingabepasswortes bildet der Zugriffssteuerungsserver einen Hashwert des Eingabepasswortes und prüft, ob das Ergebnis gleich dem gespeicherten Passworthashwert für diesen Benutzer ist. Alle Passworthashwerte können jedoch gestohlen werden, indem der Zugriffssteuerungsserver (oder eine zugehörige Passworthashwert-Datenbank) gehackt wird. Ein Speichern von Passwörtern in gehashter Form bietet aufgrund der Effizienz von Offline-Angriffen unter Verwendung von Wörterbüchern oder Brute-Forcing des Nachrichtenraums wenig Schutz. Das „National Institute of Standards and Technology” hat geschätzt, dass für Menschen merkbare Passwörter von sogar sechzehn Zeichen Länge nur 30 Bit an Entropie besitzen, was ungefähr einer Milliarde möglicher Kombinationen entspricht. Bei aktuellen Grafikprozessoren, die mehr als acht Milliarden Kombinationen je Sekunde testen können, sollte die Sicherheit als verloren betrachtet werden, sobald ein Offline-Angriff gegen die Passwortdaten in Stellung gebracht werden kann.
-
Um die Anfälligkeit für Offline-Angriffe durch Serverkompromittierung zu verringern, kann durch eine Mehrzahl von Servern eine passwortgestützte Berechtigungsprüfung durchgeführt werden. Berechtigungsprüfungsprotokolle, in denen die passwortgestützten Berechtigungsprüfungsdaten zwischen mehreren Servern aufgeteilt werden, sind zum Beispiel als Teil von „Authenticated Key-Exchange”- oder „Authenticated Secret-Sharing”-Protokollen bekannt. Systeme vor der Mehrfachserver-Passwortberechtigungsprüfung erfordern es, dass der Benutzercomputer mit allen Servern im Berechtigungsprüfungsprotokoll interagiert, da für die Berechtigungsprüfung Informationen von allen Servern erforderlich sind. Es sind zudem passwortgestützte Berechtigungsprüfungssysteme mit zwei Servern bekannt. „RSA Distributed Credential Protection”, RSA Security, Whitepaper 2012, http://www.emc.com/collateral/software/white-papers/h11013-rsa-dcp-0812-wp.pdf, beschreibt ein Beispiel eines solchen Systems. Hier werden die passwortgestützten Berechtigungsprüfungsdaten zwischen zwei Servern aufgeteilt. Die Benutzerin sendet ihr Passwort in randomisierter und aufgeteilter Form an die zwei Server, die dann interagieren, um das Passwort zu überprüfen, wobei Zugriff gewährt wird, wenn das Passwort korrekt ist.
-
Verbesserungen bei Passwortberechtigungsprüfungs-Systemen mit mehreren Servern wären höchst wünschenswert.
-
Eine Ausführungsform eines ersten Aspekts der vorliegenden Erfindung stellt ein System bereit, umfassend:
einen Zugriffssteuerungsserver zum Datenaustausch mit Benutzercomputern über ein Netzwerk und Steuern eines Zugriffs durch die Benutzercomputer auf eine Ressource in Abhängigkeit von einer Berechtigungsprüfung von Benutzerpasswörtern, die jeweiligen Benutzer-IDS zugehörig sind; und
eine Mehrzahl n von Berechtigungsprüfungsservern, die jeweilige geheime Werte speichern, zum Datenaustausch mit dem Zugriffssteuerungsserver über das Netzwerk;
wobei der Zugriffssteuerungsserver für jede Benutzer-ID einen ersten verschlüsselten Text speichert, der erzeugt wird, indem das dieser ID zugehörige Benutzerpasswort unter Verwendung eines vorbestimmten Algorithmus abhängig von den geheimen Werten verschlüsselt wird;
und wobei der Zugriffssteuerungsserver und die Berechtigungsprüfungsserver so gestaltet sind, dass als Reaktion auf einen Empfang einer solchen Benutzer-ID und eines Eingabepasswortes von einem Benutzercomputer der Zugriffssteuerungsserver mit einer Mehrzahl k ≤ n der Berechtigungsprüfungsserver Daten austauscht, um ein Passwortberechtigungsprüfungs-Protokoll zu realisieren, das die Verwendung ihrer jeweiligen geheimen Werte durch die k Berechtigungsprüfungsserver erfordert, wobei ein zweiter verschlüsselter Text erzeugt wird, indem das Eingabepasswort unter Verwendung des vorbestimmten Algorithmus verschlüsselt wird und der Zugriffssteuerungsserver den ersten und zweiten verschlüsselten Text verwendet, um zu ermitteln, ob das Eingabepasswort gleich dem Benutzerpasswort für die empfangene Benutzer-ID ist, und falls ja, Gestatten des Zugriffs auf die Ressource durch den Benutzercomputer.
-
Bei Systemen, welche diese Erfindung verkörpern, stellt der Zugriffssteuerungsserver sowohl den Zugriffspunkt auf die Ressource als auch eine zentralisierte Steuerung eines passwortgestützten Berechtigungsprüfungsprotokolls mit mehreren Servern zum Verbinden von Benutzern bereit. Eine Realisierung dieses Protokolls erfordert eine Zusammenarbeit von k ≤ n Berechtigungsprüfungsservern mit dem Zugriffssteuerungsserver, und diese Berechtigungsprüfungsserver müssen in diesem Prozess ihre jeweiligen geheimen Werte verwenden. Die Gültigkeit eines Eingabepassworts wird jedoch durch den Zugriffssteuerungsserver zentral auf Grundlage von einem Datenaustausch mit den k Servers ermittelt. Das Protokoll erfordert nicht, dass der Zugriffssteuerungsserver (oder irgendein anderer Server) das Benutzerpasswort rekonstruiert. Die Berechtigungsprüfung beruht auf der Verwendung des ersten und zweiten verschlüsselten Textes, die jeweils aus dem berechtigungsgeprüften Benutzerpasswort und dem Versuch des Eingabepassworts unter Verwendung des vordefinierten Verschlüsselungsalgorithmus abhängig von den geheimen Werten der Berechtigungsprüfungsserver erzeugt werden. Systeme, welche die Erfindung verkörpern, können eine sichere und effiziente passwortgestützte Berechtigungsprüfung bereitstellen. Benutzercomputer müssen nur mit dem Zugriffssteuerungsserver Daten austauschen und sind nicht anderweitig an der Realisierung des Berechtigungsprüfungsprotokolls beteiligt. Ausführungsformen der Erfindung können Sicherheit gegen Offline-Angriffe bieten und auch eine Realisierung eines effizienten Aktualisierungsmechanismus gestatten, wobei geheime Werte z. B. periodisch oder als Reaktion auf eine bekannte Sicherheitsverletzung aktualisiert werden können, um die Sicherheit zu verstärken. Zusätzliche Vorteile von Systemen, welche die Erfindung verkörpern, werden in Verbindung mit bestimmten nachstehend beschriebenen Ausführungsformen erklärt.
-
Die geheimen Werte der Server können kryptographische Schlüssel oder Schlüsselanteile (key-shares) oder irgendwelche anderen starken Geheimnisse aufweisen, die nur den entsprechenden Servern im System bekannt sind. Der Verschlüsselungsalgorithmus, der verwendet wird, um die verschlüsselten Texte zu generieren, kann von diesen geheimen Werten, direkt oder indirekt, in einer Vielfalt von Weisen abhängen. Zum Beispiel können die geheimen Werte im Algorithmus verwendet werden, oder der Algorithmus kann einen öffentlichen Schlüssel eines kryptographischen Schlüsselpaares verwenden, und die geheimen Werte können jeweilige Schlüsselanteile eines geheimen Schlüssels des Schlüsselpaars aufweisen. Der zweite verschlüsselte Text kann erzeugt werden, indem der Verschlüsselungsalgorithmus verwendet wird, um das Eingabepasswort direkt oder nach weiterer Verarbeitung des Eingabepassworts zu verschlüsseln, um irgendeine Funktion davon zu erzeugen.
-
In einer ersten bevorzugten Ausführungsform ist das Berechtigungsprüfungsprotokoll durch den Zugriffssteuerungsserver und k = n Berechtigungsprüfungsserver realisiert. Der erste verschlüsselte Text weist pseudozufällige Werte auf, die abgeleitet sind von: den n geheimen Werten der Berechtigungsprüfungsserver; dem Benutzerpasswort für eine Benutzer-ID; und vorzugsweise einem weiteren durch den Zugriffssteuerungsserver gespeicherten geheimen Wert. Um das Passwortüberprüfungsprotokoll zu realisieren, wenn sich ein Benutzer anmeldet, leitet der Zugriffssteuerungsserver die Erzeugung des zweiten verschlüsselten Textes in gleicher Weise wie die des ersten verschlüsselten Textes aus den geheimen Werten und dem Eingabepasswort. Der Zugriffssteuerungsserver vergleicht dann einfach den ersten und zweiten verschlüsselten Text, um zu ermitteln, ob das Eingabepasswort gleich dem Benutzerpasswort für die Benutzer-ID ist.
-
In einer zweiten bevorzugten Ausführungsform wird der erste verschlüsselte Text unter Verwendung eines homomorphen Verschlüsselungsalgorithmus zum Verschlüsseln des Benutzerpassworts unter einem öffentlichen Schlüssel eines kryptographischen Schlüsselpaares erzeugt. Die geheimen Werte der Berechtigungsprüfungsserver weisen jeweilige Schlüsselanteile eines geheimen Schlüssels des Schlüsselpaares auf. Um das Passwortberechtigungsprüfungs-Protokoll bei einer Benutzeranmeldung zu realisieren, erzeugt der Zugriffssteuerungsserver den zweiten verschlüsselten Text aus dem Eingabepasswort unter Verwendung des homomorphen Verschlüsselungsalgorithmus. Der Zugriffssteuerungsserver erzeugt dann einen Testwert durch Kombinieren des zweiten verschlüsselten Textes und des ersten verschlüsselten Textes für die empfangene Benutzer-ID über eine Operation ⊙, wobei die Operation ⊙ derart ist, dass sich aufgrund des Homomorphismus des Verschlüsselungsalgorithmus der Testwert zu einem vorbestimmten Wert entschlüsselt, wenn das Eingabepasswort gleich dem Benutzerpasswort ist. Der Testwert wird an die k Berechtigungsprüfungsserver gesendet, die ihre geheimen Schlüsselanteile verwenden, um einen jeweiligen Entschlüsselungsanteil (decryption share) zu erzeugen, der vom Testwert abhängt. Der Zugriffssteuerungsserver ermittelt dann aus den k Entschlüsselungsanteilen, ob sich der Testwert zu dem vordefinierten Wert entschlüsselt und somit das Eingabepasswort gleich dem Benutzerpasswort ist. Wenn es sich bei dem homomorphen Verschlüsselungsalgorithmus um einen Schwellenwert-Verschlüsselungsalgorithmus handelt, der weniger als n Entschlüsselungsanteile für die Entschlüsselung erfordert, kann das Passwortberechtigungsprüfungs-Protokoll unter Verwendung von k < n Berechtigungsprüfungsservern realisiert werden.
-
Zur maximalen Sicherheit gegen Offline-Angriffe sendet der Zugriffssteuerungsserver die empfangene Benutzer-ID in dem Passwortberechtigungsprüfungs-Protokoll bevorzugter Ausführungsformen an jeden Berechtigungsprüfungsserver, und jeder Berechtigungsprüfungsserver realisiert einen Regulierungsmechanismus (throttling mechanism) für jede Benutzer-ID. Regulierungsmechanismen sind in der Kryptographie allgemein bekannt und stellen Prozeduren zum Überwachen von Anmeldungen durch Systembenutzer bereit und zum Ermitteln auf Grundlage des Anmeldeverhaltens, ob ein bestimmtes Benutzerkonto gesperrt werden sollte. Regulierungsmechanismen sperren allgemein Benutzerkonten, wenn das Anmeldeverhalten einem vordefinierten Kriterium genügt, das eine potenziell schädliche Aktion angibt, z. B. wenn mehr als eine Schwellenwertanzahl von Anmeldeanfragen innerhalb einer gegebenen Zeit und/oder mit einem inkorrekten Passwort vorgenommen werden. Die erste nachstehend detailliert geschilderte Ausführungsform realisiert einen Regulierungsmechanismus auf Grundlage einer Benutzeranmeldehäufigkeit. Die zweite bevorzugte Ausführungsform kann ein Regulieren auf Grundlage einer Kombination der Anmeldehäufigkeit und inkorrekter Passworteingabe realisieren.
-
In bevorzugten Ausführungsformen sind der Zugriffssteuerungsserver und die Berechtigungsprüfungsserver ferner so gestaltet, dass sie ein Passworteinrichtungsprotokoll für Benutzerkonten realisieren. Insbesondere können der Zugriffssteuerungsserver und die Berechtigungsprüfungsserver so gestaltet sein, dass als Reaktion auf eine anfängliche Eingabe eines solchen Benutzerpassworts und der zugehörigen Benutzer-ID in einer Einrichtungsoperation der Zugriffssteuerungsserver mit den n Berechtigungsprüfungsservern Daten austauscht, um ein Passworteinrichtungsprotokoll zu realisieren, das eine Generierung des ersten verschlüsselten Textes für diese Benutzer-ID und eine Speicherung des ersten verschlüsselten Textes beim Zugriffssteuerungsserver aufweist, um eine nachfolgende Realisierung des Überprüfungsprotokolls für diese Benutzer-ID zu gestatten. Die bevorzugten Ausführungsformen stellen zudem eine effiziente Aktualisierungsoperation bereit, die es erlaubt, dass geheime Werte bei Bedarf aktualisiert werden.
-
Eine Ausführungsform eines zweiten Aspekts der Erfindung stellt einen Server bereit, der einen Speicher, eine Datenübertragungsschnittstelle und eine Steuerungslogik aufweist, die so gestaltet sind, dass sie den Server konfigurieren, einen Zugriffssteuerungsserver eines Systems gemäß dem ersten Aspekt der Erfindung zu realisieren, wobei in dem Speicher der erste verschlüsselte Text für jede in Verwendung befindliche Benutzer-ID gespeichert ist.
-
Eine Ausführungsform eines dritten Aspekts der Erfindung stellt einen Server bereit, der einen Speicher, eine Datenübertragungsschnittstelle und eine Steuerlogik aufweist, die so gestaltet sind, dass sie den Server konfigurieren, einen Berechtigungsprüfungsserver eines Systems gemäß dem ersten Aspekt der Erfindung zu realisieren, wobei in dem Speicher der geheime Wert des in Verwendung befindlichen Berechtigungsprüfungsservers gespeichert ist.
-
Weitere Aspekte der Erfindung stellen Computerprogramme bereit, die ein Programmcodemittel aufweisen, um einen Computer zu veranlassen, jeweils die Steuerungslogik eines Servers gemäß dem zweiten oder dritten Aspekt der Erfindung zu realisieren. Der Begriff „Computer” wird im allgemeinsten Sinn verwendet und schließt jede Einheit, jede Komponente oder jedes System mit einer Datenverarbeitungsfähigkeit zum Realisieren eines Computerprogramms ein. Darüber hinaus kann ein Computerprogramm, das die Erfindung verkörpert, ein unabhängiges Programm oder einen unabhängigen Programmsatz bilden, oder es kann sich um ein Element eines größeren Programms oder Programmsatzes handeln, und kann zum Beispiel in einem computerlesbaren Medium, wie beispielsweise einer Platte oder einer elektronischen Übertragung zum Laden in einen Computer verkörpert geliefert werden. Das Programmcodemittel des Computerprogramms kann jeglichen Ausdruck eines Satzes von Anweisungen in jeder beliebigen Sprache, jedem beliebigen Code oder jeder beliebigen Notation aufweisen, dessen Absicht es ist, einen Computer zu veranlassen, das fragliche Verfahren entweder direkt oder nach einem oder beidem von a) Umwandeln in eine andere Sprache, einen anderen Code oder eine andere Notation, und b) Reproduktion in einer unterschiedlichen materiellen Form, durchzuführen.
-
Eine Ausführungsform eines weiteren Aspekts der Erfindung stellt ein Verfahren zum Steuern eines Zugriffs durch Benutzercomputer auf eine Ressource in Abhängigkeit von einer Berechtigungsprüfung von Benutzerpasswörtern, die jeweiligen Benutzer-IDs zugehörig sind, bei einem Zugriffssteuerungsserver bereit, der für einen Datenaustausch mit den Benutzercomputern und einer Mehrzahl n von Berechtigungsprüfungsservern über ein Netzwerk eingerichtet ist, Das Verfahren weist auf:
Speichern der jeweiligen geheimen Werte bei den n Berechtigungsprüfungsservern;
für jede Benutzer-ID Speichern eines ersten verschlüsselten Textes, der erzeugt wird, indem das dieser ID zugehörige Benutzerpasswort unter Verwendung eines vorbestimmten Algorithmus abhängig von den geheimen Werten verschlüsselt wird, bei dem Zugriffssteuerungsserver;
beim Zugriffssteuerungsserver als Reaktion auf einen Empfang einer solchen Benutzer-ID und eines Eingabepasswortes von einem Benutzercomputer Datenaustauschen mit einer Mehrzahl k ≤ n der Berechtigungsprüfungsserver, um ein Passwortberechtigungsprüfungs-Protokoll zu realisieren, das die Verwendung ihrer jeweiligen geheimen Werte durch die k Berechtigungsprüfungsserver erfordert, wobei ein zweiter verschlüsselter Text erzeugt wird, indem des Eingabepasswort unter Verwendung des vorbestimmten Algorithmus verschlüsselt wird, und der Zugriffssteuerungsserver den ersten und zweiten verschlüsselten Text verwendet, um zu ermitteln, ob das Eingabepasswort gleich dem Benutzerpasswort für die empfangene Benutzer-ID ist; und
beim Zugriffssteuerungsserver Gestatten des Zugriffs auf die Ressource durch den Benutzercomputer, wenn das Eingabepasswort gleich dem Benutzerpasswort ist.
-
Wo hierin Merkmale unter Bezugnahme auf eine Ausführungsform eines Aspekts der Erfindung beschrieben sind, können entsprechende Merkmale in Ausführungsformen eines anderen Aspekts der Erfindung geeignet bereitgestellt werden.
-
Bevorzugte Ausführungsformen der Erfindung werden nun in beispielhafter Weise unter Bezugnahme auf die begleitenden Zeichnungen beschrieben, in denen:
-
1 eine schematische Darstellung eines Datenverarbeitungssystems zeigt, das ein Passwortberechtigungsprüfungs-System enthält, das die Erfindung verkörpert;
-
2 Merkmale einer Einrichtungsprozedur im Betrieb des Passwortberechtigungsprüfungs-Systems angibt;
-
3 Merkmale einer Anmeldeprozedur im Betrieb des Passwortberechtigungsprüfungs-Systems angibt;
-
4 eine Konfiguration einer ersten Ausführungsform des Passwortberechtigungsprüfungs-Systems zum Realisieren eines ersten Passwortberechtigungsprüfungs-Protokolls veranschaulicht;
-
5a und 5b Schritte eines Einrichtungsprotokolls in der ersten Ausführungsform angeben;
-
6a und 6b Schritte des Passwortberechtigungsprüfungs-Protokolls in der ersten Ausführungsform angeben;
-
7 Schritte eines Aktualisierungsprotokolls in der ersten Ausführungsform angibt;
-
8 eine Konfiguration einer zweiten Ausführungsform des Passwortberechtigungsprüfungs-Systems zum Realisieren eines zweiten Passwortberechtigungsprüfungs-Protokolls veranschaulicht;
-
9 Schritte eines Einrichtungsprotokolls in der zweiten Ausführungsform angibt;
-
10a und 10b Schritte einer einfachen Realisierung des Passwortberechtigungsprüfungs-Protokolls in der zweiten Ausführungsform angeben;
-
11a bis 11c Schritte einer höher entwickelten Realisierung des Passwortberechtigungsprüfungs-Protokolls in der zweiten Ausführungsform angeben; und
-
12 Schritte eines Entsperrprotokolls in der zweiten Ausführungsform angibt.
-
1 zeigt ein einfaches Beispiel eines Datenverarbeitungssystems, das ein Passwortberechtigungsprüfungs-System beinhaltet, das die Erfindung verkörpert. Das Berechtigungsprüfungssystem, das allgemein bei 1 angegeben ist, enthält einen Zugriffssteuerungsserver 2, der zum Datenaustausch mit einer Mehrzahl von Benutzercomputern 3 über ein Netzwerk 4 eingerichtet ist. Das Netzwerk 4 kann im Allgemeinen eine oder mehrere Komponentennetzwerke oder Verbindungsnetze, einschließlich des Internets, aufweisen. Bei den Benutzercomputern 3 handelt es sich in diesem Beispiel um universelle PCs, sie können jedoch gleichermaßen durch andere Computereinheiten, wie beispielsweise Mobiltelefone, Tablet-Computer, persönliche Musikwiedergabeeinheiten, Palmtop-Einheiten usw. realisiert werden. Der Zugriffssteuerungsserver 2 steuert einen Zugriff auf eine Ressource, in diesem Beispiel eine Datenbank 5, durch die Benutzercomputer 3. Der Zugriff wird in Abhängigkeit von einer Berechtigungsprüfung von Benutzerpasswörtern gestattet, die jeweiligen Benutzer-IDs, zum Beispiel Benutzernamen, zugehörig sind, die durch Benutzer über die PCs 3 im Betrieb eingegeben werden.
-
Das Berechtigungsprüfungssystem 1 enthält zudem eine Mehrzahl von mit S1, S2, ..., Sn gekennzeichneten Berechtigungsprüfungsservern 6, die zum Datenaustausch mit dem Zugriffssteuerungsserver 2 über das Netzwerk 4 eingerichtet sind. Die n Berechtigungsprüfungsserver 6 sind so gestaltet, dass sie mit dem Zugriffssteuerungsserver 2 zusammenzuarbeiten, um ein Passwortberechtigungsprüfungs-Protokoll mehrerer Server zu realisieren, das nachstehend detailliert geschildert wird. Die Anzahl n von Berechtigungsprüfungsservern kann für unterschiedliche Ausführungsformen variieren, ein typisches System kann jedoch abhängig vom bestimmten Passwortberechtigungsprüfungs-Protokoll und dem erforderlichen Maß an Sicherheit zwischen zwei und zehn Berechtigungsprüfungsserver benutzen. Im Allgemeinen können sich die Berechtigungsprüfungsserver 6 am selben Ort wie der Zugriffssteuerungsserver 2 oder an einem oder mehreren anderen Orten befinden, und sie können durch dieselbe Entität wie der Zugriffssteuerungsserver oder durch eine oder mehrere andere Entitäten gesteuert werden. Die Verteilung und Steuerung der Server 2, 6 kann somit gemäß bestimmten Sicherheitsanforderungen für ein gegebenes System ausgewählt werden.
-
Jeder der Zugriffssteuerungs- und Berechtigungsprüfungsserver 2, 6 kann als ein universeller Computer verkörpert sein, der konfiguriert ist, die entsprechende Serverfunktionalität zu realisieren. Der Zugriffssteuerungsserver 2 ist hier einfach so gezeigt, dass er eine Datenübertragungsschnittstelle (I/F) 7 zur Datenübertragung über das Netzwerk 4, eine Steuerungslogik 8 und einen Speicher 9 aufweist. Die Steuerungslogik 8 steuert allgemein den Betrieb des Servers 2 und stellt Funktionalität zum Realisieren von Schritten des Passwortberechtigungsprüfungs- sowie zugehöriger Protokolle bereit, die nachstehend detailliert geschildert werden. Im Speicher 9 werden verschiedene Daten gespeichert, die durch die Steuerungslogik im Betrieb verwendet werden. Dies schließt einen ersten verschlüsselten Text CT1 für die Benutzer-ID (Uid) jedes berechtigten Benutzers des Systems ein. Jeder Berechtigungsprüfungsserver 6 ist gleichermaßen so gezeigt, dass er eine Datenübertragungsschnittstelle 11, eine Berechtigungsprüfungslogik 12, die Funktionalität zur Verwendung in den nachstehend detailliert geschilderten Protokollen bereitstellt, und einen Speicher 13 aufweist, in dem Daten gespeichert werden, die durch die Logik 12 im Betrieb verwendet werden. Dies schließt einen geheimen Wert vi ein, der nur diesem bestimmten Server Si im System bekannt ist. Im Allgemeinen könnten die Steuerungslogik 8 und die Berechtigungsprüfungslogik 12 in Hardware oder Software oder einer Kombination davon realisiert werden. In diesem Beispiel ist die Logik 8, 12 zweckmäßigerweise durch Software realisiert, die auf dem jeweiligen Computer 2, 6 ausgeführt wird, um den Computer zu veranlassen, die beschriebenen Funktionen durchzuführen.
-
2 zeigt ein verallgemeinertes Blockschaubild, das Hauptmerkmale einer Einrichtungsprozedur zum Einrichten eines Benutzerkontos im Betrieb des Passwortberechtigungsprüfungs-Systems 1 angibt. Bei Initiierung der Einrichtungsoperation, wie in Schritt 20 angegeben, werden die Benutzer-ID Uid und das zugehörige Benutzerpasswort pwd, die für eine nachfolgende Berechtigungsprüfung eines Benutzers zu verwenden sind, in Schritt 21 in den Zugriffssteuerungs(acess control AC)-Server 2 eingegeben. In einer typischen Anwendung werden die Benutzer-ID und das Benutzerpasswort hier durch den Benutzer über einen Benutzercomputer 3 eingegeben und über das Netzwerk 4 an den AC-Server 2 gesendet. Der AC-Server antwortet in Schritt 22, indem ein Passworteinrichtungsprotokoll initiiert wird. Dieses Protokoll wird über einen Datenaustausch des AC-Servers 2 und der n Berechtigungsprüfungsserver S1 bis Sn realisiert. Das Einrichtungsprotokoll bezieht eine Generierung des ersten verschlüsselten Textes CT1 für die Eingabe-Benutzer-ID ein, wie in Schritt 23 angegeben. Der verschlüsselte Text CT1 wird erzeugt, indem das Benutzerpasswort pwd unter Verwendung eines vorbestimmten Algorithmus verschlüsselt wird, der von den geheimen Werten v1 bis vn der n Berechtigungsprüfungsserver abhängt. Dies wird nachstehend weiter erklärt. Der erste verschlüsselte Text CT1 wird durch den AC-Server 2 mit der Benutzer-ID Uid für den berechtigten Benutzer gespeichert, wie in Schritt 24 angegeben. Die n Berechtigungsprüfungsserver 6 speichern die Benutzer-ID Uid wie in Schritt 25 angegeben (üblicherweise mit einem oder mehreren Elementen, wie beispielsweise ein „Konto gesperrt”-Flag, das durch einen nachstehend weiter erläuterten Regulierungsmechanismus gesteuert wird). Es ist zu beachten, dass die Reihenfolge der Schritte 24 und 25 in unterschiedlichen Realisierungen variieren kann, wie nachstehend veranschaulicht. Das Passworteinrichtungsprotokoll ist dann abgeschlossen, und das Benutzerkonto ist zur Verwendung in einer nachfolgenden Anmeldeprozedur bereit.
-
3 zeigt ein verallgemeinertes Blockschaubild, das einen Überblick über eine Einrichtungsprozedur im Betrieb des Passwortberechtigungsprüfungs-Systems 1 gibt. Die Anmeldeprozedur beginnt in Schritt 30, wenn ein einen Benutzercomputer 3 bedienender Benutzer ein Passwort pwd' (d. h. einen Versuch für das Benutzerpasswort pwd) und eine Benutzer-ID Uid eingibt. Die Eingaben Uid, pwd' werden über das Netzwerk 4 gesendet und in Schritt 31 durch den AC-Server 2 empfangen. Der AC-Server antwortet in Schritt 32, indem ein Überprüfungsprotokoll zum Berechtigungsprüfen des Eingabepasswortes pwd' initiiert wird. Dieses Passwortberechtigungsprüfungs-Protokoll wird über einen Datenaustausch des AC-Servers 2 mit einer Mehrzahl k ≤ n der Berechtigungsprüfungsserver S1 bis Sn realisiert, wobei der Wert von k von der bestimmten Protokollrealisierung abhängt. Ein erfolgreicher Betrieb des Protokolls erfordert es, dass die k Berechtigungsprüfungsserver ihre jeweiligen geheimen Werte vi verwenden, wie in Block 33 in der Figur angegeben. Das Protokoll bringt eine Generierung eines zweiten verschlüsselten Textes CT2 mit sich, wie in Block 34 angegeben. Dieser verschlüsselte Text CT2 wird im System 1 erzeugt, indem das Eingabepasswort pwd' unter Verwendung des im Einrichtungsprotokoll verwendeten Algorithmus verschlüsselt wird, um den ersten verschlüsselten Text CT1 zu erzeugen. Der AC-Server 2 verwendet dann den ersten und zweiten verschlüsselten Text CT1, CT2, um in Schritt 35 zu ermitteln, ob das Eingabepasswort pwd' gleich dem in Schritt 31 empfangenen Benutzerpasswort pwd für die Benutzer-ID ist. Falls dem so ist („J” im Entscheidungsblock 36), gestattet der AC-Server 2 den Benutzerzugriff auf die Datenbank 5, wie in Schritt 37 angegeben, und der Anmeldeprozess ist abgeschlossen. Wenn das Eingabepasswort pwd' ungültig ist, („N” im Entscheidungsblock 36), verweigert der AC-Server 2 in Schritt 38 den Zugriff und kann den Benutzer dementsprechend benachrichtigen. Es ist wiederum zu beachten, dass die Reihenfolge der durch die Blöcke von 3 angegebenen Schritte in unterschiedlichen Realisierungen variieren kann, wie durch die nachstehenden Beispiele veranschaulicht.
-
Eine erste Ausführungsform des Berechtigungsprüfungssystems 1, die zum Realisieren eines ersten Passwortberechtigungsprüfungs-Protokolls gestaltet ist, wird nun detailliert unter Bezugnahme auf 4 bis 7 beschrieben. Das erste Passwortberechtigungsprüfungs-Protokoll beruht auf symmetrischer Kryptographie durch Verwenden einer Pseudozufallsfunktion und XOR-Operationen (d. h. Modulo-2-Addition). 4 veranschaulicht eine anfängliche Konfiguration der Systemserver in dieser Ausführungsform. Jeder der n Berechtigungsprüfungsserver S1 bis Sn speichert zwei identische Schlüssel, die mit k1i und k2i bezeichnet sind. (Der Schlüssel k2i entspricht hier dem vorstehend erläuterten geheimen Serverwert vi. Der hier verwendete Schlüssel k1i könnte durch eine eindeutige Server-ID ersetzt werden, wie nachstehend weiter erläutert). In dieser Ausführungsform speichert der AC-Server einen weiteren geheimen Wert, hier ein weiterer symmetrischer Schlüssel, der mit kAC bezeichnet ist. Das System arbeitet mit sicherer Datenübertragung zwischen den Servern 2, 6 über berechtigungsgeprüfte und vertrauliche Kanäle mit vorwärts gerichteter Geheimhaltung (forward secrecy). Diese Eigenschaften können in einer bekannten Weise erreicht werden, z. B. unter Verwendung von SSL(Secure Sockets Layer)- oder TLS(Transport Layer Security)-Protokollen
-
Einrichtungsprotokoll Ausführungsform Nr. 1
-
5a und 5b geben aufeinanderfolgende Stufen des Einrichtungsprotokolls in dieser Ausführungsform an. Die Operation beginnt, wie in (a) in 5a angegeben, wenn ein Benutzer dem AC-Server 2 über einen Benutzer-PC 3 eine Benutzer-ID Uid und ein Benutzerpasswort pwd liefert. In Schritt (b) erzeugt die Steuerungslogik 8 des AC-Servers 2 einen anfänglichen Pseudozufallswert tin, der das Benutzerpasswort pwd über eine Pseudozufallsfunktion PRF (pseudorandom function) verschlüsselt. Der anfängliche Pseudozufallswert tin verschlüsselt auch den geheimen Schlüssel kAC des AC-Servers und (um eine Kollision zu vermeiden, wenn ein anderer Benutzer dasselbe Passwort wählt) die Benutzer-ID Uid. Insbesondere in diesem Beispiel wird der Pseudozufallswert tin berechnet als tin ← PRF(PRF(kAC, Uid), pwd).
-
In Schritt (c) sendet der AC-Server die Benutzer-ID Uid und den anfänglichen Pseudozufallswert tin über die Datenübertragungsschnittstelle 7 und das Netzwerk 4 an die n Berechtigungsprüfungsserver S1 bis Sn. Die Werte (Uid, pwd) werden durch die Berechtigungsprüfungslogik 12 jedes Berechtigungsprüfungsservers 6 über die Datenübertragungsschnittstelle 11 empfangen.
-
Im nächsten Schritt, der in 5b bei (d) angegeben ist, verwendet die Berechtigungsprüfungslogik 12 jedes Servers Si den anfänglichen Pseudozufallswert tin, um einen entsprechenden ersten Pseudozufallswert t1i zu erzeugen. Dieser erste Pseudozufallswert weist eine Modulo-2-Summe der zweiten und dritten Pseudozufallswerte t2i bzw. t3i auf. Der zweite Pseudozufallswert t2i verschlüsselt den anfänglichen Pseudozufallswert tin über die Pseudozufallsfunktion PRF. Der zweite Pseudozufallswert t2i verschlüsselt über die Pseudozufallsfunktion PRF auch eine Server-ID für den jeweiligen Berechtigungsprüfungsserver, wobei der Serverschlüssel k1i hier die Server-ID bildet. Der dritte Pseudozufallswert verschlüsselt über die Pseudozufallsfunktion PRF den geheimen Wert vi = k2i des Berechtigungsprüfungsservers Si und die empfangene Benutzer-ID Uid (die dem Benutzerpasswort zugehörig ist, das im anfänglichen Pseudozufallswert tin verschlüsselt ist). Insbesondere: t1i ← t2i ⊕ t3i
← PRF(k1i, tin) ⊕ PRF(k2i, Uid), wobei ⊕ für die Modulo-2-Additions(XOR)-Operation steht. Der zweite Ausdruck t3i in dieser Formel stellt die Basis für eine proaktive Aktualisierungsprozedur bereit, die nachstehend weiter erläutert wird.
-
In der nächsten Stufe der Einrichtungsoperation, wie in (e) in 5b angegeben, sendet jeder Berechtigungsprüfungsserver Si seinen jeweiligen Pseudozufallswert t1i an den AC-Server 2. Die Steuerungslogik 8 des AC-Servers 2 erzeugt dann den ersten verschlüsselten Text CT1 aus den n ersten Pseudozufallswerten t1i. Der erste verschlüsselte Text CT1, der in dieser Ausführungsform mit tpwd bezeichnet ist, ist gegeben durch: tpwd = t11 ⊕ t12 ⊕ t13 ... ⊕ t1n
-
Es wird daher ersichtlich sein, dass der erste verschlüsselte Text in dieser Ausführungsform eine Modulo-2-Summe der n ersten Pseudozufallswerte t1i aufweist, von denen jeder über die Pseudozufallsfunktion den geheimen Wert k2i eines jeweiligen Berechtigungsprüfungsservers und den anfänglichen Pseudozufallswert tin verschlüsselt, der wiederum das Benutzerpasswort pwd den geheimen Wert kAC des AC-Servers 2 verschlüsselt.
-
Wie in 5b angegeben, speichert der AC-Server 2 am Ende des Einrichtungsprotokolls für diesen Benutzer den ersten verschlüsselten Text tpwd für die Benutzer-ID Uid in seinem Speicher 9. Der Speicher 13 jedes Berechtigungsprüfungsservers 6 speichert Uid und ein „Konto gesperrt”-Bit b = {0, 1), das angibt, ob das Benutzerkonto gesperrt (b = 1) oder offen (b = 0) ist. Anfänglich ist dieses Bit auf b = 0 gesetzt. Die anfänglichen Pseudozufallswerte tin, t1i werden durch keinen der Server 2, 6 gespeichert und nach der Verwendung beim Einrichten des Benutzerkontos gelöscht.
-
Passwortberechtigungsprüfungs-Protokoll Ausführungsform Nr. 1
-
Bei einer nachfolgenden Anmeldung für das Benutzerkonto tauscht der AC-Server 2 mit k = n Berechtigungsprüfungsservern 6 Daten aus, um das Passwortberechtigungsprüfungs-Protokoll zu realisieren. 6a und 6b geben aufeinanderfolgende Stufen des Passwortberechtigungsprüfungs-Protokolls in dieser Ausführungsform an. Die Operation beginnt, wie in (a) in 6a angegeben, wenn der Benutzer über einen Benutzer-PC 3 die Benutzer-ID Uid liefert und ein Benutzerpasswort pwd' eingibt. Bei Empfang der Werte (Uid, pwd') prüft der AC-Server 2, ob ein Benutzerdatensatz (Uid, tpwd) im Speicher 9 vorhanden ist. Falls nicht, schlägt die Anmeldung fehl. Falls dem so ist, entspricht die nachfolgende Operation allgemein dem vorstehenden Einrichtungsprotokoll, verwendet jedoch das Eingabepasswort pwd'. Somit verwendet die AC-Serverlogik in Schritt (b) das Eingabepasswort pwd', um einen Test-Pseudozufallswert ttest zu erzeugen, der dem anfänglichen Pseudozufallswert tin entspricht. Der Test-Pseudozufallswert ttest wird somit auf gleiche Weise wie der anfängliche Pseudozufallswert tin erzeugt, verwendet jedoch das Eingabepasswort pwd' anstatt des Benutzerpasswortes pwd. In Schritt (c) sendet der AC-Server den Test-Pseudozufallswert ttest mit der empfangenen Benutzer-ID Uid an jeden Berechtigungsprüfungsserver S1 bis Sn. An diesem Punkt prüft jeder Berechtigungsprüfungsserver aufgrund des Betriebs eines Regulierungsmechanismus, wie in Schritt (d) angegeben, ob das Benutzerkonto gesperrt wurde (d. h. das Flag b für Uid auf b = 1 gesetzt ist). Insbesondere ist die Berechtigungsprüfungslogik 12 von jedem Server 6 eingerichtet, einen Regulierungsmechanismus für jede Benutzer-ID Uid auf Grundlage einer Häufigkeit von Benutzeranmeldeanfragen zu realisieren. Verschiedene solche Regulierungsmechanismen sind im Stand der Technik bekannt, und jede zweckdienliche Technik kann hier benutzt werden. Zum Beispiel kann ein Konto gesperrt werden, wenn mehr als eine Schwellenwertanzahl von Anmeldeanfragen empfangen werden oder innerhalb einer gegebenen Zeitgrenze empfangen werden. Alternativ oder zusätzlich dazu kann zum Beispiel eine sich allmählich erhöhende Zeitgrenze zum Bedienen von Benutzeranfragen angewandt werden, wenn ein verdächtiges Anmeldeverhalten erkannt wird, z. B. wenn eine bestimmte Anzahl oder Rate von Anfragen überschreiten wird. Der Regulierungsmechanismus kann daher ein Benutzerkonto zeitweise oder permanent sperren, wobei letzteres abhängig von der speziellen Realisierung ein Entsperren durch eine berechtigte Partei oder eine Erneuerung eines Benutzerkontos erfordert. In jedem Fall schlägt die Anmeldeoperation fehl, wenn das Benutzerkonto bei irgendeinem Berechtigungsprüfungsserver 6 gesperrt ist. Wenn kein Server das Benutzerkonto gesperrt hat, kann die Anmeldeoperation fortfahren.
-
In der nächsten Stufe des Berechtigungsprüfungsprotokolls verwendet jeder Berechtigungsprüfungsserver Si, wie in (e) in 6b angegeben, den Test-Pseudozufallswert ttest, um einen entsprechenden Server-Pseudozufallswert tsi zu erzeugen, der dem vorstehenden ersten Pseudozufallswert t1i entspricht. Das heißt, der Server-Pseudozufallswert tsi wird auf gleiche Weise erzeugt wie der erste Pseudozufallswert t1i, verwendet jedoch den Test-Pseudozufallswert ttest anstatt des anfänglichen Pseudozufallswertes tin. Somit gilt: tsi ← PRF(k1i, ttest) ⊕ PRF(k2i, Uid).
-
In Schritt (f) sendet jeder Berechtigungsprüfungsserver Si seinen Server-Pseudozufallswert tsi an den AC-Server 2. In Schritt (g) erzeugt der AC-Server den zweiten verschlüsselten Text CT2 aus den n Server-Pseudozufallswerten tsi. Der zweite verschlüsselte Text CT2, der in dieser Ausführungsform mit tpwd' bezeichnet wird, ist somit gegeben durch: tpwd' = ts1 ⊕ ts2 ⊕ ts3 ... ⊕ tsn
-
Um zu ermitteln, ob das Eingabepasswort gültig ist (pwd' = pwd), vergleicht die AC-Serverlogik in Schritt (h) einfach den ersten und zweiten verschlüsselten Text, um zu ermitteln, ob tpwd' = tpwd. Falls dem so ist, ist die Anmeldung erfolgreich, und der Server gewährt dem Benutzer Zugriff auf die Ressource 5. Falls nicht, schlägt die Anmeldung fehl und der Zugriff wird verweigert.
-
Das vorstehende Passwortberechtigungsprüfungs-Protokoll wird zwischen dem AC-Server allen n Berechtigungsprüfungsservern ausgeführt. Ein „Smash-and-Grab”-Angriff, bei dem ein Gegenüber für eine kurze Zeit die volle Kontrolle über einen Server erlangen und alle Informationen, einschließlich geheimer Schlüssel, die durch den korrumpierten Server unterhalten werden, abgreifen kann, wird die Sicherheit nicht verletzen, da für den Berechtigungsprüfungsprozess die geheimen Schlüssel aller Server erforderlich sind. Die Passwörter sind sicher, solange mindestens ein Server 2, 6 ehrlich bleibt. Solange zum Beispiel nicht mehr als n – 1 Berechtigungsprüfungsserver und der AC-Server durch ein Gegenüber korrumpiert sind, kann das Gegenüber keine Passwörter rekonstruieren oder Offline-Angriffe gegen die akkumulierten Berechtigungsprüfungsdaten durchführen. Das Gegenüber würde Unterstützung von dem verbleibenden ehrlichen Server benötigen, um alle Passwortkombinationen zu testen, und dies wird aufgrund des Regulierungsmechanismus durch den ehrlichen Server erkannt und verhindert. Sicherheit wird in dieser Ausführungsform allein über symmetrische Kryptographie erreicht, die schnell und einfach ist und beträchtliche Vorteile hinsichtlich der Realisierungseffizienz bietet. Darüber hinaus erfordert das System keine dedizierte Client-Software bei den Benutzercomputern 3, und die Benutzercomputer müssen für den Betrieb des Systems nur mit dem AC-Server Daten austauschen. Das System gestattet zudem die Realisierung eines effizienten proaktiven Sicherheitsmechanismus zum Aktualisieren von Serverschlüsseln. Dieser Aktualisierungsmechanismus erfordert keine Interaktion mit Benutzern. Das Aktualisierungsprotokoll wird nun unter Bezugnahme auf 7 erklärt.
-
Aktualisierungsprotokoll Ausführungsform Nr. 1
-
Der AC-Server 2 und jeder Berechtigungsprüfungsserver 6 sind so gestaltet, dass sie ein Aktualisierungsprotokoll realisieren, bei dem der Berechtigungsprüfungsserver seinen jeweiligen geheimen Wert vi = k2i auf einen neuen Wert k2'i aktualisiert. Das Protokoll kann durch den AC-Server periodisch mit allen Berechtigungsprüfungsservern ausgeführt werden, um die Sicherheit gegen aufeinanderfolgende Serverkompromittierung weiter zu verbessern. Zudem kann das Protokoll verwendet werden, um nach einer bekannten Verletzung die volle Sicherheit wiederherzustellen. Wenn der AC-Server 2 kompromittiert ist, wird das Aktualisierungsprotokoll alle Server einschließen. Eine Sicherheitsverletzung auf einem einzelnen Berechtigungsprüfungsserver erfordert nur eine Realisierung des Protokolls durch den AC-Server und den betroffenen Berechtigungsprüfungsserver. Im Folgenden liegt der Schwerpunkt auf dem Betrieb für einen einzelnen Berechtigungsprüfungsserver, was bei Bedarf auf alle n Server ausgedehnt werden kann.
-
Der AC-Server sendet alle Uid-Werte, für die der Datensatz aktualisiert werden sollte, an den Berechtigungsprüfungsserver 6. Der Berechtigungsprüfungsserver 6 aktualisiert seinen jeweiligen geheimen Wert vi = k2i auf einen neuen geheimen Wert k2'i und verwendet den neuen geheimen Wert k2'i, um einen aktualisierten Pseudozufallswert tui, der dem vorstehenden dritten Pseudozufallswert t3i entspricht, für jede Benutzer-ID Uid zu erzeugen. Das heißt, der Berechtigungsprüfungsserver 6 wählt, wie in Schritt (a) in 7 angegeben, einen neuen Schlüssel k2'i und berechnet dann den aktualisierten Pseudozufallswert tui zu: tui ← PRF(k2'i, Uid).
-
Der Berechtigungsprüfungsserver erzeugt dann einen Aktualisierungswert ui, der eine Modulo-2-Summe des aktualisierten Pseudozufallswertes tui und des dritten Pseudozufallswertes t3i aufweist: ui ← PRF(k2'i, Uid) ⊕ PRF(k2i, Uid)
-
In Schritt (b) sendet der Berechtigungsprüfungsserver den Aktualisierungswert ui für jede Uid an den AC-Server 2. In Schritt (c) aktualisiert der AC-Server 2 den für jede Uid gespeicherten ersten verschlüsselten Text tpwd, indem eine Modulo-2-Summe des ersten verschlüsselten Textes tpwd und des Aktualisierungswertes ui erzeugt wird. Der neue erste verschlüsselte Text ist somit gegeben durch: t'pwd = tpwd ⊕ ui.
-
(Wenn alle Serverschlüssel aktualisiert sind, ist der neue erste verschlüsselte Text daher gegeben durch t'pwd = tpwd ⊕ u1 ⊕ u2 ... ⊕ un). Der neue verschlüsselte Text ist dann eine Modulo-2-Summe der Werte: t'pwd ← PRF(k1i, tin) ⊕ PRF(k2'i, Uid), wie erforderlich. Die alte Zufallsfunktion PRF(k2i, Uid) wird aufgrund der Modulo-2-Addition aufgehoben, wodurch das verlorene k2i nutzlos wird. Der neue erste verschlüsselte Text wird dann durch den AC-Server für die Benutzer-ID gespeichert.
-
Eine zweite Ausführungsform des Berechtigungsprüfungssystems 1, die zum Realisieren eines zweiten Passwortberechtigungsprüfungs-Protokolls gestaltet ist, wird nun detailliert unter Bezugnahme auf 8 bis 12 beschrieben. Das zweite Passwortberechtigungsprüfungs-Protokoll beruht auf einem homomorphen Schwellenwertverschlüsselungsschema. 8 veranschaulicht eine anfängliche Konfiguration der Systemserver in dieser Ausführungsform. Der AC-Server 2 speichert einen öffentlichen Schlüssel tpk eines kryptographischen (öffentlich/geheim) Schlüsselpaares. Die durch die Berechtigungsprüfungsserver Si gespeicherten geheimen Werte v; weisen jeweilige Schlüsselanteile tski des geheimen Schlüssels dieses Schlüsselpaares auf. Das System arbeitet wie zuvor mit sicherer Datenübertragung zwischen den Servern 2, 6.
-
Einrichtungsprotokoll Ausführungsform Nr. 2
-
9 gibt Schritte des Einrichtungsprotokolls an, um in dieser Ausführungsform ein Benutzerkonto zu erstellen. Die Operation beginnt in Schritt (a) mit einer Eingabe einer Benutzer-ID Uid und eines Benutzerpassworts pwd in den AC-Server 2. In Schritt (b) erzeugt der AC-Server einen ersten verschlüsselten Text CT1 unter Verwendung eines homomorphen Schwellenwertverschlüsselungsalgorithmus TEnctpk zum Verschlüsseln des Passwortes pwd unter dem öffentlichen Schlüssel tpk. Der Schwellenwertverschlüsselungsalgorithmus TEnctpk erfordert p < n Entschlüsselungsanteile zur Entschlüsselung, wie nachstehend detaillierter erklärt. Der erste verschlüsselte Text CT1, der in dieser Ausführungsform mit Cpwd bezeichnet ist, ist gegeben durch: Cpwd = TEnctpk (pwd).
-
Der Verschlüsselungsalgorithmus TEnc ist homomorph, und zwar gibt es eine effiziente Operation ⊙ an verschlüsselten Texten C derart, dass im Falle, dass C1 ∊∈ TEnctpk(m1) und C2 ∈∊ TEnctpk(m2), dann gilt C1 ⊙ C2 ∈∊ TEnctpk(m1, m2). (Es werden auch Exponenten verwendet, um die wiederholte Anwendung von ⊙ anzugeben, z. B. C2 zum Angeben von C ⊙ C). Der AC-Server speichert den ersten verschlüsselten Text Cpwd für die Benutzer-ID Uid und sendet in Schritt (c) Cpwd mit Uid an die n Berechtigungsprüfungsserver S1 bis Sn. Jeder Berechtigungsprüfungsserver Si speichert in diesem Beispiel Uid zusammen mit Cpwd und einem Konto-gesperrt-Bit b (anfänglich auf b = 0 gesetzt) für einen Regulierungsmechanismus wie vorstehend erläutert.
-
Passwortberechtigungsprüfungs-Protokoll Ausführungsform Nr. 2
-
Bei einer nachfolgenden Anmeldung für das Benutzerkonto tauscht der AC-Server 2 mit k = p Berechtigungsprüfungsservern 6 Daten aus, um das Passwortberechtigungsprüfungs-Protokoll zu realisieren. Zuerst wird eine einfache Realisierung dieses Protokolls unter Bezugnahme auf die 10a und 10b beschrieben. Diese geben aufeinanderfolgende Stufen im Betrieb des Passwortberechtigungsprüfungs-Protokolls an. Die Prozedur beginnt, wie in (a) in 10a angegeben, bei Lieferung der Benutzer-ID Uid und des Eingabepasswortes pwd' an den AC-Server 2. Wenn im Speicher 9 ein Benutzerdatensatz für Uid vorhanden ist, erzeugt der AC-Server in Schritt (b) den zweiten verschlüsselten Text CT2 = Cpwd' aus dem Eingabepasswort unter Verwendung des homomorphen Verschlüsselungsalgorithmus. In diesem anfänglichen Beispiel ist der zweite verschlüsselte Text, der mit Cpwd' bezeichnet ist, gegeben durch: Cpwd' = TEnctpk (pwd').
-
In Schritt (c) erzeugt der AC-Server dann einen Testwert Ctest, indem über die Operation ⊙ der zweite verschlüsselte Text Cpwd' und der erste verschlüsselte Text Cpwd, der für die empfangene Uid gespeichert ist, kombiniert werden. In diesem anfänglichen Beispiel steht die Operation ⊙ für eine Division, wobei: Ctest = Cpwd/Cpwd'.
-
Aufgrund des Homomorphismus des Verschlüsselungsalgorithmus, wie vorstehend erklärt, entschlüsselt sich der Testwert zu einem vorbestimmten Wert von Eins, wenn das Eingabepasswort pwd' gleich dem Benutzerpasswort pwd ist, das dem empfangenen Uid zugehörig ist Als Nächstes sendet der AC-Server in Schritt (d) den Testwert Ctest mit Uid an k = p Berechtigungsprüfungsserver 6. Die p Berechtigungsprüfungsserver können hier in jeder zweckdienlichen Weise ausgewählt werden, z. B. als die ersten p antwortenden Server, oder um unter den n Berechtigungsprüfungsservern 6 ein Lastausgleichschema zu realisieren.
-
In der nächsten Stufe dieses Berechtigungsprüfungsprotokolls prüft jeder Berechtigungsprüfungsserver Si, wie in Schritt (e) in 6b angegeben, durch den durch die Serverlogik wie vorstehend erläutert realisierten Regulierungsmechanismus, ob das Benutzerkonto gesperrt wurde (b = 1 für Uid). Wenn das Benutzerkonto bei irgendeinem Berechtigungsprüfungsserver 6 gesperrt ist, schlägt die Anmeldeoperation fehl. Wenn keiner der p Server das Benutzerkonto gesperrt hat, kann die Anmeldeoperation fortfahren. In diesem Fall verwendet jeder Berechtigungsprüfungsserver Si, wie in Schritt (f) angegeben, seinen jeweiligen Schlüsselanteil tski, um einen Entschlüsselungsanteil di abhängig vom Testwert Ctest zu erzeugen. In diesem einfachen Beispiel entschlüsselt der Server einfach Ctest unter Verwendung seines Schlüsselanteils tski und sendet in Schritt (g) den sich ergebenden Entschlüsselungsanteil di für Uid an den AC-Server. In Schritt (h) ermittelt der Zugriffssteuerungsserver, ob das Eingabepasswort gleich dem Benutzerpasswort ist, indem aus den k Entschlüsselungsanteilen d1 ... dk ermittelt wird, ob sich der Testwert zu Eins entschlüsselt, d. h. ob: TDec(Ctest, d1 ... dk) = 1; wobei TDec der Verschlüsselungsalgorithmus für das Schwellenwertverschlüsselungsschema ist, wie nachstehend weiter erläutert wird. Falls dem so ist, wird der Zugriff gestattet. Falls pwd' ≠ pwd, wird es sich bei dem Entschlüsselungsergebnis um eine Zufallszahl handeln, und der Zugriff wird verweigert.
-
Eine detailliertere Realisierung des zweiten Passwortberechtigungsprüfungs-Protokolls wird nun unter Bezugnahme auf 11a bis 11c beschrieben. Dieses Beispiel beinhaltet verschiedene Verbesserungen gegenüber dem vorstehenden einfachen Beispiel und erlaubt es der Regulierung, zu berücksichtigten, ob frühere Anmeldeversuche erfolgreich waren. Zuerst wird eine kurze Beschreibung des Schwellenwertbeschreibungsschemas gegeben, um zum Verständnis des folgenden Protokolls beizutragen.
-
Schwellenwertverschlüsselung: Ein Schwellenwertverschlusselungsschema besteht aus vier Algorithmen (EKGen; TEnc; PDec; TDec). Der Schlüsselgenerierungsalgorithmus EKGen nimmt die Eingabe (1λ, t, n), wobei t das Maximum tolerierter schädlicher Server bezeichnet, und gibt einen öffentlichen Hauptschlüssel tpk und n partielle Schlüssel(Schlüsselanteil)-Paare (tpk1, tsk1), ..., (tpkn, tskn) aus. Der Verschlüsselungsalgorithmus TEnc gibt auf Eingang des öffentlichen Schlüssels tpk und einer Nachricht m hin einen verschlüsselten Text C aus. Der partielle Entschlüsselungsalgorithmus PDec gibt auf Eingang eines geheimen Schlüsselanteils tski, eines öffentlichen Schlüsselfanteils tpki und eines verschlüsselten Textes C hin einen Entschlüsselungsanteil di aus. Der Schwellenwertentschlüsselungsalgorithmus TDec gibt auf Eingang von C, tpk und k t + 1 Entschlüsselungsanteilen d1 ... dk hin einen Klartext m oder ⊥ (Fehler) aus. Verschiedene solcher Schwellenwertverschlüsselungsschemata sind bekannt, wobei ein beispielhafter Aufbau in Y. Desmedt, Y. Frankel beschrieben ist: „Threshold Cryptosystems”, Desmedt & Y. Frankel, CRYPTO 1989.
-
Vor dem vorstehend beschriebenen Einrichtungsprotokoll erstellt der AC-Server 2 Schwellenwertschlüssel für alle n Berechtigungsprüfungsserver 6. Das heißt, er erstellt Schlüssel (tpk, (tpk1, tsk1), ..., (tpkn, tskn)) ← EKGen(1λ, t, n).
-
Die geheimen Schlüsselanteile tski werden dann verschlüsselt an jeden Server Si gesendet. Der öffentliche Hauptschlüssel tpk und die öffentlichen Schlüsselanteile tpki sind im System öffentlich bekannt. Zudem erstellt jeder Berechtigungsprüfungsserver 6 auch einen Schlüssel ki für ein Nachrichtenberechtigungsprüfungsschema (message authentication scheme (MAC)), das im Entsperrtest für einen reguliertes Konto verwendet wird, wie nachstehend erläutert.
-
Das Einrichtungsprotokoll für Benutzerkonten ist wie unter Bezugnahme auf 9 beschrieben gestaltet. Im Passwortberechtigungsprüfungs-Protokoll tauscht der AC-Server 2 mit p = t + 1 Berechtigungsprüfungsservern 6 Daten aus, wobei t dergestalt ist, wie durch das vorstehende Schwellenwertverschlüsselungsschema definiert.
-
Das Passwortberechtigungsprüfungs-Protokoll ist in 11a bis 11c hinsichtlich einer Interaktion zwischen dem AC-Server 2, dessen Operationen links in den Figuren angegeben sind, und jedem Berechtigungsprüfungsserver 6, dessen Operationen rechts angegeben sind, beschrieben.
-
Die Operation beginnt in Schritt (a) in 11a, wenn der Benutzer Uid und das Eingabepasswort pwd' an den AC-Server 2 sendet. Wenn ein Benutzerdatensatz für Uid vorhanden ist, fährt der AC-Server fort, indem der zweite verschlüsselte Text CT2 = Cpwd' aus dem Eingabepasswort unter Verwendung des homomorphen Verschlüsselungsalgorithmus berechnet wird. In diesem Beispiel wird der zweite verschlüsselte Text Cpwd' erzeugt, indem der homomorphe Verschlüsselungsalgorithmus auf eine Funktion F des Eingabepasswortes angewandt wird, wobei F(x) = 1/x. Somit gilt: Cpwd' = TEnctpk (1/pwd').
-
Dies stellt sicher, dass ein schädlicher AC-Server nicht einfach den ersten verschlüsselten Text Cpwd erneut als den zweiten verschlüsselten Text Cpwd' im Berechtigungsprüfungsprotokoll verwenden kann. Dann wird der Testwert Ctest erzeugt, indem Cpwd' und Cpwd über die Operation ⊙ kombiniert werden, wobei in diesem Fall ⊙ für eine Multiplikation steht: Ctest = Cpwd ⊙ Cpwd' = Cpwd ⊙ TEnctpk (1/pwd').
-
Aufgrund des Homomorphismus des Verschlüsselungsalgorithmus, wie vorstehend erklärt, entschlüsselt sich der Testwert erneut zu Eins, wenn pwd' = pwd. Als Nächstes generiert der AC-Server 2 in Schritt (c) einen kryptographischen Nachweis n zum Nachweisen, dass Ctest den zweiten verschlüsselten Text Cpwd' sowie den ersten verschlüsselten Text Cpwd für die Benutzer-ID aufweist: NIZK{(pwd'): Ctest = (Cpwd ⊙ TEnctpk(1/pwd'))}(Ctest).
-
(Hier bedeutet „NIZK” gleich „nicht interaktiv kenntnisfrei” (non-interactive zeroknowledge), wobei „kenntnisfrei” angibt, dass der Nachweiser nicht mehr enthüllt als zum Nachweisen erforderlich ist, und „nicht interaktiv” bedeutet, dass eine Überprüfung des Nachweises keine Interaktion zwischen dem Nachweiser und dem Überprüfer erfordert. Solche Nachweise können auf bekannte Weise realisiert werden, und geeignete Protokolle zum Realisieren des Nachweises sind für den Fachmann ersichtlich). Insbesondere erlaubt der Nachweis n eine Überprüfung, dass der Testwert Ctest den korrekten ersten verschlüsselten Text Cpwd für Uid und einen zweiten verschlüsselten Text Cpwd' aufweist, der korrekt aus der Funktion F eines Eingabepasswortes berechnet ist. In Schritt (d) sendet der AC-Server dann die Benutzer-ID und den Nachweis n mit dem Testwert Ctest an die k = t + 1 Berechtigungsprüfungsserver 6.
-
Unter Bezugnahme auf
11b empfängt jeder Berechtigungsprüfungsserver S
i in Schritt (e) (Uid, n, C
test) und prüft dann in Schritt (f), dass das Konto für Uid nicht gesperrt ist, d. h. dass b = 0. In Schritt (g) überprüft der Server S
i den Nachweis n, um zu prüfen, dass (Uid, n, C
test) in Hinblick auf seine lokal gespeicherten Werte (Uid, C
pwd) korrekt ist. Wenn entweder Testschritt (f) oder (g) fehlschlägt, schlägt die Benutzeranmeldung fehl (dem Betrieb des vorstehend erläuterten Entsperrprotokolls unterliegend). Unter der Annahme, dass beide Tests bestanden werden, fährt der Server S
i dann in Schritt (h) fort, einen randomisierten Wert C
i zu berechnen, der den Testwert in einer Potenz eines entsprechenden Zufallsexponenten r
i aufweist:
für ein zufällig gewähltes r
i. Jeder Server speichert dann C
i und übernimmt diesen Wert in Schritt (i) durch Senden eines Hashwerts h
i an den AC-Server, wobei:
hi ← H(Ci, Uid) und H eine kryptographische Hashfunktion bezeichnet. Wenn der AC-Server alle k = t + 1 Hashwerte empfangen hat, leitet er sie in Schritt (j) als (h
1, h
2, ..., h
t+1) an alle Server S
1 bis S
k weiter. Die k Server enthüllen nun ihre randomisierten Werte C
i, indem sie sie in Schritt (k) an den AC-Server senden. Wenn der AC-Server alle k = t + 1 randomisierten Werte C
i empfangen hat, leitet er sie in Schritt (l) als (C
1, C
2, ..., C
t+1) an alle Server S
1 bis S
k weiter.
-
Unter Bezugnahme auf 11c empfängt jeder Berechtigungsprüfungsserver Si in Schritt (m) (C1, C2, ..., Ct+1) und prüft in Schritt (n), ob hi = N(Ci, Uid). Falls dem so ist, kombiniert der Server Si in Schritt (o) den Satz von k = t + 1 randomisierten Werten Ci über die Operation ⊙ (hier Multiplikation), um einen randomisierten verschlüsselten Text CR zu erzeugen, und verwendet seinen jeweiligen Schlüsselanteil tski, um einen Entschlüsselungsanteil di aus dem randomisierten verschlüsselten Text CR zu erzeugen: CR ← ⊙i=1, ... t+1Ci di ← PDectski(tpki, CR)
-
Der Server Si sendet in Schritt (p) unter Verwendung seines Schlüssels ki für das Nachrichtenberechtigungsprüfungsschema (di, si) an den AC-Server 2, wobei si = MACki (Uid, CR). Wenn der AC-Server die Entschlüsselungsanteile und MACs (di, si) von allen k = t + 1 Servern empfangen hat, verwendet er den Schwellenwertentschlüsselungsalgorithmus TDec, um aus den Entschlüsselungsanteilen zu ermitteln, ob sich der randomisierte verschlüsselte Text CR zu Eins entschlüsselt und somit pwd' = pwd. Dies folgt, weil ein randomisierter Wert Ci = 1, wenn der Testwert Ctest = 1, wobei sich aufgrund des Homomorphismus der randomisierte verschlüsselte Text CR zum selben Wert wie der Testwert entschlüsselt, d. h. Eins, wenn pwd' = pwd. Somit berechnet der AC-Server 2 in Schritt (q): CR ← ⊙i=1, ... t+1Ci und x ← TDectpk(CR, {di}i=1, ... t+1).
-
Wenn x = 1, stimmen die Passwörter überein, und der Zugriff wird gewährt, andernfalls schlägt die Anmeldung fehl.
-
Im vorstehenden Prozess behält der AC-Server alle Entschlüsselungsanteile und MAC-Werte (di, si) für eine bestimmte Zeitdauer, um einen nachfolgenden Nachweis für einen Berechtigungsprüfungsserver zu gestatten, dass die Anmeldung erfolgreich war. Insbesondere erlauben es die Schritte (h) bis (p) im vorstehenden Protokoll einem Berechtigungsprüfungsserver, die Korrektheit eines Eingabepasswortes im letzten Anmeldeversuch zu prüfen, bevor ein Benutzerkonto gesperrt wird. Vor dem Sperren eines Kontos aufgrund des Regulierungsmechanismus in einer nachfolgenden Anmeldung für die Uid tauscht ein Berechtigungsprüfungsserver mit dem Zugriffssteuerungsserver Daten aus, um ein „Entsperrprotokoll” zu realisieren. Dieses Entsperrprotokoll wird nun unter Bezugnahme auf 12 beschrieben.
-
Entsperrprotokoll
-
Die durch den AC-Server 2 und den Berechtigungsprüfungsserver 6 im Entsperrprotokoll durchgeführten Schritte sind jeweils links und rechts in 12 angegeben. Wenn ein Server Si zu viele Anmeldeversuche festgestellt hat und davor steht, das Benutzerkonto für Uid zu sperren, sendet der Server eine Nachweisanforderung an den AC-Server, die einen Nachweis anfordert, dass der letzte Anmeldeversuch erfolgreich war, d. h. dass sich der randomisierte verschlüsselte Text CR zu Eins entschlüsselt hat. Wenn bei Senden solch einer Anforderung in Schritt (a) von 12 der letzte Anmeldeversuch erfolgreich war, ruft der AC-Server die Werte (Uid, CR, si, {di}i=1, ... t+1) ab und sendet diese Werte in Schritt (b) an den Berechtigungsprüfungsserver. Wenn der letzte Anmeldeversuch nicht erfolgreich war, sendet der AC-Server stattdessen Werte (Uid, Fehlschlag). In Schritt (c) überprüft der Server Si, ob si = MACki (Uid, CR) und TDectpk(CR,{di}i=1, ... t+1) = 1. Nur wenn beide Tests erfolgreich sind, hält der Server das Konto für Uid offen. Das Kontogesperrt-Bit b wird somit in Schritt (d) entsprechend gesetzt, und das Protokoll ist abgeschlossen.
-
Es wird ersichtlich sein, dass es das vorstehende System erlaubt, dass das Regulieren auf einer Passwortprüfung sowie auf einer Anmeldehäufigkeit beruht. Zudem sind die n Berechtigungsprüfungsserver dieser Ausführungsform ferner so gestaltet, dass sie ein Anteilerneuerungsprotokoll zum Aktualisieren der n Schlüsselanteile tski realisieren. Dies kann in bekannter Weise unter Verwendung proaktiver Geheimnisteilungstechniken (secret sharing techniques) realisiert werden, wovon ein Beispiel in „Proactive Secret Sharing Or: How to Cope With Perpetual Leakage”, Herzberg et al., CRYPTO 1995, beschrieben ist. Unter Verwendung solcher Techniken werden die Server 6 ein Anteilerneuerungsprotokoll für ihre geheimen Schlüsselanteile periodisch und/oder immer durchführen, wenn ein Gegenüber möglicherweise von einer geheimen Schlüsselfreigabe erfahren hat. Die alten Anteile werden nach jeder Erneuerung gelöscht. Die proaktive Sicherheit stellt dadurch sicher, dass einerseits die neuen geheimen Schlüsselanteile tski noch mit dem öffentliche Hauptschlüssel tpk „kompatibel” sind, während sie andererseits mit den alten Geheimnisanteilen, die das Gegenüber erlangt haben kann, „inkompatibel” sind.
-
Solange in der vorstehenden Ausführungsform höchstens t Server (und der DS) korrumpiert sind, kann ein diese Server kontrollierendes Gegenüber die Passwörter nicht abrufen, indem zum Beispiel Offline-Angriffe gegen Cpwd in Stellung gebracht werden. Dies folgt aus der Sicherheit des Schwellenwertverschlüsselungsschemas, das garantiert, dass Cpwd nicht entschlüsselt werden kann, wenn das Gegenüber höchstens t Anteile des geheimen Schwellenwertschlüssels besitzt. Sicherheit gegen DS-Insider-Angriffe wird bereitgestellt, da die Server während des Anmeldeprotokolls nur einen Passwortquotienten (vom Wert Eins) und nicht das ursprüngliche Passwort pwd oder den Passwortversuch pwd' entschlüsseln. Somit kann ein schädlicher DS nicht einfach die Entschlüsselung der verschlüsselten Passwörter auslösen, sondern müsste ein vollständiges Anmeldeprotokoll für jeden Passwortrateversuch durchführen. Aufgrund des Regulierungsmechanismus in ehrlichen Servern wird solch ein Angriff erkannt und nach wenigen Versuchen blockiert. Dieses schwellenwertgestützte System toleriert sogar langfristige Korrumpierungen von bis zu t Servern, wobei die Server zu einer anderen Vertrauensdomäne ausgelagert werden könnten. Die Anmeldung ist besonders effizient, da für die Passwortberechtigungsprüfung nur t + 1 der n Berechtigungsprüfungsserver erforderlich sind. Wie zuvor ist der Betrieb des Systems für Benutzer völlig transparent, die in allen Protokollen nur mit dem AC-Server 2 kommunizieren müssen.
-
Obwohl beispielhafte Ausführungsformen beschrieben wurden, sind viele Alternativen und Modifikationen denkbar. Zum Beispiel kann in anderen Realisierungen der vorstehenden ersten Ausführungsform der Schlüssel k1i in der vorstehenden Formel für t2i durch PRF(k1i, Uid) ersetzt werden. Da zudem die Systemsicherheit nicht von diesem bestimmten Wert abhängt, könnte der Schlüssel k1i durch irgendeine eindeutige Server-ID ersetzt werden und muss kein kryptographisch starkes Geheimnis sein. Zudem könnte das Schwellenwertverschlüsselungsschema in der zweiten Ausführungsform t + 1 = n Anteile für die Entschlüsselung erfordern, falls gewünscht, wodurch alle n Server 6 für die Passwortberechtigungsprüfung verwendet werden würden.
-
Es wird ersichtlich sein, dass die durch den Zugriffssteuerungsserver 2 geschützte Ressource im Allgemeinen jede Ressource beinhalten kann, zu welcher der Benutzerzugriff eingeschränkt ist, z. B. eine Anwendung, ein Dienst, Daten, eine Einheit, ein Netzwerk oder irgendeine andere Einrichtung oder Kombination von Einrichtungen. Zudem könnte die Funktionalität von Servern in den vorstehenden Ausführungsformen im Allgemeinen in einer einzigen Maschine oder über eine Mehrzahl von Maschinen verteilt realisiert werden. Es könnten auch Ausführungsformen denkbar sein, in denen die durch ein vorstehendes Einrichtungsprotokoll generierten Benutzerkontendaten in den verschiedenen Servern vorgeladen sind.
-
Viele weitere Änderungen und Modifikationen können an den beschriebenen beispielhaften Ausführungsformen vorgenommen werden, ohne vom Umfang der Erfindung abzuweichen.
-
Bei der vorliegenden Erfindung kann es sich um ein System, ein Verfahren und/oder ein Computerprogrammprodukt handeln. Das Computerprogrammprodukt kann ein computerlesbares Datenspeichermedium (oder -medien) mit darauf befindlichen computerlesbaren Programmanweisungen beinhalten, um einen Prozessor zu veranlassen, Aspekte der vorliegenden Erfindung auszuführen.
-
Bei dem computerlesbaren Datenspeichermedium kann es sich um eine gegenständliche Einheit handeln, die Anweisungen zur Verwendung durch eine Einheit zum Ausführen von Anweisungen festhalten und speichern kann. Bei dem computerlesbaren Datenspeichermedium kann es sich zum Beispiel, ohne auf diese beschränkt zu sein, um eine elektronische Datenspeichereinheit, eine magnetische Datenspeichereinheit, eine optische Datenspeichereinheit, eine elektromagnetische Datenspeichereinheit, eine Halbleiterdatenspeichereinheit (semiconductor storage device) oder eine beliebige geeignete Kombination des Vorhergehenden handeln. Eine nicht abschließende Liste von spezifischeren Beispielen des computerlesbaren Datenspeichermediums beinhaltet das Folgende: eine transportable Computerdiskette, eine Festplatte, einen Speicher mit wahlfreiem Zugriff (random access memory (RAM)), einen Nur-Lese-Speicher (ROM), einen löschbaren programmierbaren Nur-Lese-Speicher (erasable programmable read-only memory (EPROM) oder Flash-Speicher), einen statischen Speicher mit wahlfreiem Zugriff (static random access memory (SRAM)), einen transportablen Compact-Disc-Nur-Lese-Speicher (portable compact disc read-only memory (CD-ROM)), eine „Digital Versatile Disk” (DVD), einen Speicherstick, eine Floppydiskette, eine mechanisch codierte Einheit, wie beispielsweise Lochkarten oder erhabene Strukturen in einer Rille mit darauf festgehaltenen Anweisungen, und jede geeignete Kombination des Vorhergehenden. Ein computerlesbares Datenspeichermedium, wie es hierin verwendet wird, ist nicht als flüchtige Signale per se aufzufassen, wie beispielsweise Funkwellen oder andere sich frei ausbreitende elektromagnetische Wellen, sich durch einen Wellenleiter oder eine anderes Übertragungsmedium ausbreitende elektromagnetische Wellen (z. B. Lichtimpulse, die durch ein Lichtwellenleiterkabel laufen) oder durch einen Draht übertragene elektrische Signale.
-
Hierin beschriebene computerlesbare Programmanweisungen können von einem computerlesbaren Datenspeichermedium auf entsprechende Rechen-/Verarbeitungseinheiten oder über ein Netzwerk, zum Beispiel das Internet, ein lokales Netzwerk, ein Weitverkehrsnetzwerk und/oder ein kabelloses Netzwerk, auf einen externen Computer oder eine externe Datenspeichereinheit heruntergeladen werden. Das Netzwerk kann Kupferübertragungskabel, Lichtwellenübertragungsleiter, kabellose Übertragung, Router, Firewalls, Switches, Gateway-Computer und/oder Edge-Server aufweisen. Eine Netzwerkadapterkarte oder eine Netzwerkschnittstelle in jeder Rechen-/Verarbeitungseinheit empfängt computerlesbare Programmanweisungen vom Netzwerk und leitet die computerlesbaren Programmanweisungen zur Speicherung in einem computerlesbaren Datenspeichermedium innerhalb der entsprechenden Rechen-/Verarbeitungseinheit weiter.
-
Bei computerlesbaren Programmanweisungen zum Ausführen von Operationen der vorliegenden Erfindung kann es sich um Assembler-Anweisungen, „Instruction-set-Architecture”(ISA)-Anweisungen, Maschinenanweisungen, maschinenabhängige Anweisungen, Mikrocode, Firmwareanweisungen, Zustandseinstellungsdaten oder jeden Quellcode oder Objektcode handeln, der in irgendeiner Kombination aus einer oder mehreren Programmiersprachen geschrieben ist, einschließlich einer objektorientierten Programmiersprache, wie beispielsweise Smalltalk, C++ oder Ähnliches, und herkömmlicher prozeduraler Programmiersprachen, wie beispielsweise die Programmiersprache „C” oder ähnliche Programmiersprachen. Die computerlesbaren Programmanweisungen können vollständig auf dem Computer des Benutzers, teilweise auf dem Computer des Benutzers, als ein eigenständiges Softwarepaket, teilweise auf dem Computer des Benutzers und teilweise auf einem entfernt angeordneten Computer oder vollständig auf dem entfernt angeordneten Computer oder Server ausgeführt werden. In letzterem Szenario kann der entfernt angeordnete Computer mit dem Computer des Benutzers über jede beliebige Art von Netzwerk, einschließlich ein Lokalbereichsnetzwerk (local area network (LAN)) oder ein Weitverkehrsnetzwerk (wide area network (WAN)), verbunden sein, oder die Verbindung kann zu einem externen Computer (zum Beispiel mittels eines Internetdienstanbieters durch das Internet) hergestellt werden. In manchen Ausführungsformen können elektronische Schaltungen einschließlich zum Beispiel programmierbare Logikschaltungen, feldprogrammierbare Gatteranordnungen (fieldprogrammable gate arrays (FPGA)), oder programmierbare Logikanordnungen (programmable logic arrays (PLA)) die computerlesbaren Programmanweisungen ausführen, indem Zustandsinformationen der computerlesbaren Programmanweisungen verwendet werden, um die elektronische Schaltung zu personalisieren, um Aspekte der vorliegenden Erfindung durchzuführen.
-
Aspekte der vorliegenden Erfindung werden hierin unter Bezugnahme auf Darstellungen von Ablaufplänen und/oder Blockschaubildern von Verfahren, Vorrichtungen (Systemen) und Computerprogrammprodukten gemäß Ausführungsformen der Erfindung beschrieben. Es versteht sich, dass jeder Block der Darstellungen von Ablaufplänen und/oder der Blockschaubilder sowie Kombinationen von Blöcken in den Darstellungen von Ablaufplänen und/oder den Blockschaubildern durch computerlesbare Programmanweisungen realisiert werden können.
-
Diese computerlesbaren Programmanweisungen können einem Prozessor eines universellen Computers, eines zweckbestimmten Computers oder einer anderen programmierbaren Datenverarbeitungsvorrichtung bereitgestellt werden, um eine Maschine so zu erzeugen, dass die Anweisungen, die über den Prozessor des Computers oder der anderen programmierbaren Datenverarbeitungsvorrichtung ausgeführt werden, ein Mittel zum Realisieren der im Block oder in den Blöcken des Ablaufplans und/oder Blockschaubildes angegebenen Funktionen/Handlungen erzeugen. Diese computerlesbaren Programmanweisungen können auch in einem computerlesbaren Datenspeichermedium gespeichert sein, das einen Computer, eine programmierbare Datenverarbeitungsvorrichtung und/oder andere Einheiten anleiten kann, auf eine bestimmte Weise zu funktionieren, sodass das computerlesbare Datenspeichermedium mit darin gespeicherten Anweisungen ein Herstellungsprodukt einschließlich Anweisungen aufweist, welche Aspekte der im Block oder in den Blöcken des Ablaufplans und/oder des Blockschaubildes angegebene Funktion/Handlung realisieren.
-
Die computerlesbaren Programmanweisungen können auch auf einen Computer, eine andere programmierbare Datenverarbeitungsvorrichtung oder eine andere Einheit geladen werden, um eine Reihe von auf dem Computer, der anderen programmierbaren Vorrichtung oder der anderen Einheit durchzuführenden Operationsschritten hervorzurufen, um einen computerrealisierten Prozess so zu erzeugen, dass die auf dem Computer, der anderen programmierbaren Vorrichtung oder der anderen Einheit ausgeführten Anweisungen die im Block oder in den Blöcken des Ablaufplans und/oder des Blockschaubildes angegebenen Funktionen/Handlungen realisieren.
-
Die Ablaufplan- und Blockschaubilder in den Figuren veranschaulichen die Architektur, Funktionalität und die Arbeitsweise möglicher Realisierungen von Systemen, Verfahren und Computerprogrammprodukten gemäß verschiedenen Ausführungsformen der vorliegenden Erfindung. In dieser Hinsicht kann jeder Block in den Ablaufplan oder Blockschaubildern für ein Modul, ein Segment oder einen Abschnitt von Anweisungen stehen, das oder der eine oder mehrere ausführbare Anweisungen zum Realisieren der angegebenen logischen Funktion oder Funktionen aufweist. In manchen alternativen Realisierungen können die im Block festgehaltenen Funktionen in einer anderen als der in den Figuren festgehaltenen Reihenfolge auftreten. Zum Beispiel können zwei aufeinander folgend gezeigte Blöcke tatsächlich im Wesentlichen gleichzeitig ausgeführt werden, oder die Blöcke können manchmal abhängig von der betreffenden Funktionalität in umgekehrter Reihenfolge ausgeführt werden. Es wird ebenfalls angemerkt, dass jeder Block der Blockschaubilder und/oder Darstellungen von Ablaufplänen und Kombinationen von Blöcken in den Blockschaubildern und/oder den Darstellungen von Ablaufplänen durch zweckbestimmte hardwaregestützte Systeme realisiert werden kann, welche die angegebenen Funktionen oder Handlungen durchführen oder Kombinationen aus zweckbestimmter Hardware und Computeranweisungen ausführen.