DE112018004753T5 - Automatisches aufrüsten von einstufiger berechtigungsprüfung auf zweistufige berechtigungsprüfung über eine anwendungsprogrammierschnittstelle - Google Patents

Automatisches aufrüsten von einstufiger berechtigungsprüfung auf zweistufige berechtigungsprüfung über eine anwendungsprogrammierschnittstelle Download PDF

Info

Publication number
DE112018004753T5
DE112018004753T5 DE112018004753.9T DE112018004753T DE112018004753T5 DE 112018004753 T5 DE112018004753 T5 DE 112018004753T5 DE 112018004753 T DE112018004753 T DE 112018004753T DE 112018004753 T5 DE112018004753 T5 DE 112018004753T5
Authority
DE
Germany
Prior art keywords
user
server
client
secret key
shared secret
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
DE112018004753.9T
Other languages
English (en)
Inventor
Larry Allen Brocious
Michael James Howland
Paul Edward Rogers
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of DE112018004753T5 publication Critical patent/DE112018004753T5/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/31User authentication
    • G06F21/40User authentication by quorum, i.e. whereby two or more security principals are required
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/083Network architectures or network communication protocols for network security for authentication of entities using passwords
    • H04L63/0838Network architectures or network communication protocols for network security for authentication of entities using passwords using one-time-passwords
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/31User authentication
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0892Network architectures or network communication protocols for network security for authentication of entities by using authentication-authorization-accounting [AAA] servers or protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/20Network architectures or network communication protocols for network security for managing network security; network security policies in general
    • H04L63/205Network architectures or network communication protocols for network security for managing network security; network security policies in general involving negotiation or determination of the one or more network security mechanisms to be used, e.g. by negotiation between the client and the server or between peers or by selection according to the capabilities of the entities involved
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0838Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0863Generation of secret information including derivation or calculation of cryptographic keys or passwords involving passwords or one-time passwords
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3226Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using a predetermined code, e.g. password, passphrase or PIN
    • H04L9/3228One-time or temporary data, i.e. information which is sent for every authentication or authorization, e.g. one-time-password, one-time-token or one-time-key
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2463/00Additional details relating to network architectures or network communication protocols for network security covered by H04L63/00
    • H04L2463/082Additional details relating to network architectures or network communication protocols for network security covered by H04L63/00 applying multi-factor authentication

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Business, Economics & Management (AREA)
  • Accounting & Taxation (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

Ein Client überträgt eine Benutzerkennung und ein Kennwort über eine Anwendungsprogrammierschnittstelle (API) an einen Server. Der Client baut eine auf Berechtigung geprüfte Sitzung mit dem Server auf, in der der Client über einen ersten Satz von Berechtigungen für Vorgänge verfügt, die der API zugehörig sind. Der Client empfängt eine Anmeldeantwort und einen gemeinsam genutzten geheimen Schlüssel als Reaktion auf eine Überprüfung der Benutzerkennung und des Kennworts durch den Server. Der Client erzeugt einen einmaligen Kenncode (OTP) auf Grundlage des gemeinsam genutzten geheimen Schlüssels. Der Client sendet den OTP über die API an den Server. Der Server gewährt einen zweiten Satz von Berechtigungen für Vorgänge, die der API zugehörig sind, als Reaktion auf eine Überprüfung des OTP anhand des gemeinsam genutzten geheimen Schlüssels durch den Server.

Description

  • TECHNISCHES GEBIET
  • Die vorliegende Erfindung bezieht sich allgemein auf ein Verfahren, ein System und ein Computerprogrammprodukt für eine zweistufige Berechtigungsprüfung. Im Besonderen bezieht sich die vorliegende Erfindung auf ein Verfahren, ein System und ein Computerprogrammprodukt für ein automatisches Aufrüsten von einer einstufigen Berechtigungsprüfung auf eine zweistufige Berechtigungsprüfung über eine Anwendungsprogra m m ierschnittstelle.
  • HINTERGRUND
  • Es besteht ein Bedarf, eine geeignete sichere Berechtigungsprüfung für Anwendungen bereitzustellen. Gegenwärtig wird die Sicherheit von Netzwerkanwendungen von der Standardprozedur, bei der ein Benutzer eine Benutzerkennung (user identifier, ID) und ein Kennwort bereitstellt, um eine Berechtigung für eine(n) Netzwerkdienst oder -anwendung zu prüfen, dahingehend erweitert, dass ein zweistufiger Berechtigungsprüfungsprozess erforderlich wird. Zusätzlich dazu, dass ein Benutzer einen ersten Berechtigungsprüfungsfaktor wie zum Beispiel eine Benutzer-ID und ein Kennwort bereitstellen muss, muss der Benutzer bei einer zweistufigen Berechtigungsprüfung einen zweiten Berechtigungsprüfungsfaktor bereitstellen, um einen Berechtigungsprüfungsprozess abzuschließen. Typischerweise handelt es sich bei dem zweiten Berechtigungsprüfungsfaktor um dem Benutzer bekannte Daten, die einem nicht berechtigten Benutzer wahrscheinlich nicht bekannt sind, wie zum Beispiel um einen dem Benutzer bekannten geheimen Schlüssel oder ein Sicherheits-Token.
  • Daher besteht nach dem Stand der Technik ein Bedarf, das oben genannte Problem zu lösen.
  • KURZDARSTELLUNG
  • Unter einem ersten Aspekt betrachtet, stellt die vorliegende Erfindung ein Verfahren für eine zweistufige Berechtigungsprüfung bereit, wobei das Verfahren aufweist:
    • Übertragen einer Benutzerkennung und eines Kennworts durch einen Client über eine Anwendungsprogrammierschnittstelle (application programming interface, API) an einen Server; Aufbauen einer auf Berechtigung geprüften Sitzung mit dem Server, wobei der Client über einen ersten Satz von Berechtigungen für Vorgänge verfügt, die der API zugehörig sind;
    • Empfangen einer Anmeldeantwort und eines gemeinsam genutzten geheimen Schlüssels als Reaktion auf eine Überprüfung der Benutzerkennung und des Kennworts durch den Server;
    • Erzeugen eines einmaligen Kenncodes (one time passcode, OTP) durch den Client auf Grundlage des gemeinsam genutzten geheimen Schlüssels; Senden des OTP über die API an den Server; und Gewähren eines zweiten Satzes von Berechtigungen für Vorgänge, die der API zugehörig sind, als Reaktion auf eine Überprüfung des OTP anhand des gemeinsam genutzten geheimen Schlüssels durch den Server.
  • Unter einem weiteren Aspekt betrachtet, stellt die vorliegende Erfindung ein Computerprogrammprodukt für eine zweistufige Berechtigungsprüfung bereit, wobei das Computerprogrammprodukt ein durch einen Computer lesbares Speichermedium aufweist, das durch eine Verarbeitungsschaltung lesbar ist und das Anweisungen zum Ausführen durch die Verarbeitungsschaltung zum Durchführen eines Verfahrens zum Durchführen der Schritte der Erfindung speichert.
  • Unter einem weiteren Aspekt betrachtet, stellt die vorliegende Erfindung ein Computerprogramm bereit, das auf einem durch einen Computer lesbaren Medium gespeichert ist und in den internen Speicher eines Digitalcomputers ladbar ist, das Abschnitte eines Software-Codes aufweist, um die Schritte der Erfindung durchzuführen, wenn das Programm auf einem Computer ausgeführt wird.
  • Unter einem weiteren Aspekt betrachtet, stellt die vorliegende Erfindung ein Computersystem bereit, das einen oder mehrere Prozessoren, einen oder mehrere durch einen Computer lesbare Speicher und eine oder mehrere durch einen Computer lesbare Speichereinheiten und Programmanweisungen aufweist, die auf zumindest einer der einen oder mehreren Speichereinheiten zum Ausführen durch zumindest einen des einen oder der mehreren Prozessoren über zumindest einen des einen oder der mehreren Speicher gespeichert sind, wobei die gespeicherten Programmanweisungen aufweisen: Programmanweisungen zum Übertragen einer Benutzerkennung und eines Kennworts durch einen Client über eine Anwendungsprogrammierschnittstelle (API) an einen Server; Programmanweisungen zum Aufbauen einer auf Berechtigung geprüften Sitzung mit dem Server, wobei der Client über einen ersten Satz von Berechtigungen für Vorgänge verfügt, die der API zugehörig sind; Programmanweisungen zum Empfangen einer Anmeldeantwort und eines gemeinsam genutzten geheimen Schlüssels als Reaktion auf eine Überprüfung der Benutzerkennung und des Kennworts durch den Server; Programmanweisungen zum Erzeugen eines einmaligen Kenncodes (OTP) durch den Client auf Grundlage des gemeinsam genutzten geheimen Schlüssels; Programmanweisungen zum Senden des OTP über die API an den Server; und Programmanweisungen zum Gewähren eines zweiten Satzes von Berechtigungen für Vorgänge, die der API zugehörig sind, als Reaktion auf eine Überprüfung des OTP anhand des gemeinsam genutzten geheimen Schlüssels durch den Server.
  • Die veranschaulichenden Ausführungsformen stellen ein Verfahren, ein System und ein Computerprogrammprodukt bereit. Eine Ausführungsform eines Verfahrens enthält ein Übertragen einer Benutzerkennung und eines Kennworts durch einen Client über eine Anwendungsprogrammierschnittstelle (API) an einen Server. Die Ausführungsform enthält des Weiteren ein Aufbauen einer auf Berechtigung geprüften Sitzung mit dem Server, in der der Client über einen ersten Satz von Berechtigungen für Vorgänge verfügt, die der API zugehörig sind. Die Ausführungsform enthält des Weiteren ein Empfangen einer Anmeldeantwort und eines gemeinsam genutzten geheimen Schlüssels als Reaktion auf eine Überprüfung der Benutzerkennung und des Kennworts durch den Server. Die Ausführungsform enthält des Weiteren ein Erzeugen eines einmaligen Kenncodes (OTP) durch den Client auf Grundlage des gemeinsam genutzten geheimen Schlüssels. Die Ausführungsform enthält des Weiteren ein Senden des OTP über die API an den Server. Die Ausführungsform enthält noch weiter ein Gewähren eines zweiten Satzes von Berechtigungen für Vorgänge, die der API zugehörig sind, als Reaktion auf eine Überprüfung des OTP durch den Server anhand des gemeinsam genutzten geheimen Schlüssels.
  • Eine Ausführungsform enthält des Weiteren ein Empfangen der Benutzerkennung und des Kennworts durch die Client-Einheit von einem Benutzer. Bei einer Ausführungsform erfolgt das Empfangen der Anmeldeantwort und des gemeinsam genutzten geheimen Schlüssels als Reaktion auf ein Feststellen, dass ein Benutzer, dem die Benutzerkennung zugehörig ist, für ein Aufrüsten von einer Ein-Faktor-Berechtigungsprüfung auf eine Zwei-Faktor-Berechtigungsprüfung bestimmt ist.
  • Eine Ausführungsform enthält des Weiteren ein Speichern des gemeinsam genutzten geheimen Schlüssels durch den Client in Client-Vorgaben, die einem Benutzer zugehörig sind. Bei einer Ausführungsform ist der Server dazu konfiguriert, den gemeinsam genutzten geheimen Schlüssel in einem Benutzerprofil zu speichern, das einem Benutzer zugehörig ist. Bei einer Ausführungsform enthält die API eine Representational-State-Transfer(REST)-API. Bei einer Ausführungsform ist der zweite Satz von Berechtigungen größer als der erste Satz von Berechtigungen.
  • Eine Ausführungsform enthält des Weiteren ein Übertragen der Benutzer-ID, des Kennworts und eines aktuellen OTP, der auf Grundlage des gemeinsam genutzten geheimen Schlüssels erzeugt worden ist, in einem nachfolgenden Anmeldevorgang an den Server.
  • Eine Ausführungsform enthält ein von einem Computer verwendbares Programmprodukt. Das von einem Computer verwendbare Programmprodukt enthält eine oder mehrere durch einen Computer lesbare Speichereinheiten und Programmanweisungen, die auf zumindest einer der einen oder mehreren Speichereinheiten gespeichert sind. Eine Ausführungsform enthält ein Computersystem. Das Computersystem enthält einen oder mehrere Prozessoren, einen oder mehrere durch einen Computer lesbare Speicher und eine oder mehrere durch einen Computer lesbare Speichereinheiten und Programmanweisungen, die auf zumindest einer der einen oder mehreren Speichereinheiten zum Ausführen durch zumindest einen des einen oder der mehreren Prozessoren über zumindest einen des einen oder der mehreren Speicher gespeichert sind.
  • Figurenliste
  • Bestimmte neuartige Merkmale, die als charakteristisch für die Erfindung erachtet werden, werden in den beigefügten Ansprüchen erläutert. Die Erfindung selbst wie auch eine bevorzugte Verwendungsweise, weitere Ziele und Vorteile davon sind jedoch durch Bezugnahme auf die folgende ausführliche Beschreibung der veranschaulichenden Ausführungsformen am besten zu verstehen, wenn sie zusammen mit den beigefügten Zeichnungen gelesen werden, in denen:
    • 1 ein Blockschaubild eines Netzwerks von Datenverarbeitungssystemen darstellt, in dem veranschaulichende Ausführungsformen implementiert werden können;
    • 2 ein Blockschaubild eines Datenverarbeitungssystems darstellt, in dem veranschaulichende Ausführungsformen implementiert werden können;
    • 3 ein Blockschaubild einer beispielhaften Konfiguration für ein automatisches Aufrüsten auf eine zweistufige Berechtigungsprüfung gemäß einer veranschaulichenden Ausführungsform darstellt;
    • 4 einen Nachrichtenfluss eines beispielhaften Prozesses für ein automatisches Aufrüsten auf eine zweistufige Berechtigungsprüfung gemäß einer veranschaulichenden Ausführungsform darstellt;
    • 5 einen Ablaufplan eines beispielhaften Client-seitigen Prozesses für ein automatisches Aufrüsten auf eine zweistufige Berechtigungsprüfung gemäß einer veranschaulichenden Ausführungsform darstellt; und
    • 6 einen Ablaufplan eines beispielhaften Server-seitigen Prozesses für ein automatisches Aufrüsten auf eine zweistufige Berechtigungsprüfung gemäß einer veranschaulichenden Ausführungsform darstellt.
  • AUSFÜHRLICHE BESCHREIBUNG
  • Verschiedene veranschaulichende Ausführungsformen stellen ein automatisches Aufrüsten von einer einstufigen auf eine zweistufige Berechtigungsprüfung für Server-Anwendungen oder -Dienste bereit, die eine Anwendungsprogrammierschnittstelle (API) für zustandslose Protokolle einsetzen. Bei einem zustandslosen Protokoll müssen weder der Absender noch der Empfänger Sitzungsdaten während der Dauer einer Datenübertragungssitzung beibehalten. Eine oder mehrere Ausführungsformen stellen ein automatisches Aufrüsten von einer einstufigen auf eine zweistufige Berechtigungsprüfung für Server-Anwendungen oder -Dienste bereit, die eine vollständig interne Representational-State-Transfer(REST)-API einsetzen, ohne dass zusätzliche Schritte außerhalb des Arbeitsbereichs der REST-API erforderlich sind. Eine zweistufige Berechtigungsprüfung wird bisweilen als Zwei-Faktor-Berechtigungsprüfung bezeichnet. Bei bestimmten Ausführungsformen wird eine einstufige Berechtigungsprüfung, die nur eine Benutzer-ID und ein Kennwort zur Berechtigungsprüfung einsetzt, für einen bestimmten Benutzer automatisch auf eine zweistufige Berechtigungsprüfung unter Verwendung einer Benutzer-ID/eines Kennworts sowie eines einmaligen Kenncodes zur Berechtigungsprüfung aufgerüstet.
  • In einem herkömmlichen Anwendungsfall für eine Zwei-Faktor-Berechtigungsprüfung meldet sich ein Benutzer über einen Browser bei einer Web-Anwendung an, gibt eine Benutzer-ID und ein Kennwort ein und aktiviert die Zwei-Faktor-Berechtigungsprüfung in einem Benutzerprofil, das dem Benutzer zugehörig ist. Anschließend erfasst der Benutzer einen gemeinsam genutzten geheimen Schlüssel mit einem Smartphone oder einer sonstigen Einheit, üblicherweise durch Scannen eines QR-Codes. Der Benutzer erzeugt einen Kenncode auf Grundlage des gemeinsam genutzten geheimen Schlüssels und sendet den Kenncode zur Berechtigungsprüfung an einen die Berechtigung prüfenden Server. Bei vorhandenen Implementierungen muss ein Benutzer den zweiten Faktor auf herkömmliche Weise einrichten, indem er sich über einen Web-Browser anmeldet, und im Vergleich zu einem API-Zugriff wird für einen Web-Zugriff ein separates Berechtigungsprüfungs-Token, nicht derselbe gemeinsam genutzte geheime Schlüssel und Algorithmus, verwendet.
  • Eine oder mehrere bestimmte, hierin beschriebene Ausführungsformen ermöglichen Benutzern, die mit einer Web-Anwendung über REST-APIs interagieren, denselben Satz von Merkmalen, die für einen herkömmlichen Web-Browser verfügbar sind, der eine zweistufige Berechtigungsprüfung für ihre Benutzerkonten ermöglicht, als Berechtigungsprüfung über einen REST-API-Client zu nutzen.
  • Bei einer Ausführungsform wird ein bestimmter Benutzer dazu bestimmt, ein Aufrüsten von einer Ein-Faktor-Berechtigungsprüfung auf eine Zwei-Faktor-Berechtigungsprüfung zu benötigen, um bei einem nächsten Anmeldeversuch Zugriff auf eine oder mehrere Anwendungen oder Dienste zu gewähren. Bei einer bestimmten Ausführungsform wird der Benutzer durch einen Administrator einer Anwendung oder eines Dienstes dazu bestimmt, eine Zwei-Faktor-Berechtigungsprüfung zu benötigen. Bei der Ausführungsform meldet sich ein Benutzer bei einem Server wie zum Beispiel einem Berechtigungsprüfungs-Server an, indem er eine Benutzer-ID und ein Kennwort mithilfe einer Web-Dienste-(REST-API)-Client-Anwendung bereitstellt. Bei der Ausführungsform versucht der Server, den Benutzer mithilfe der Benutzer-ID und des Kennworts zu überprüfen.
  • Bei einer erfolgreichen Berechtigungsprüfung wird eine Sitzung wie zum Beispiel eine Web-Dienstesitzung zwischen dem Server und dem Client aufgebaut, bei der sich der Benutzer in einem Zustand eingeschränkter Anmeldung befindet. In dem Zustand eingeschränkter Anmeldung ist die Berechtigung des Benutzers geprüft, er verfügt jedoch nur über eine Berechtigung zum Zugreifen auf einen eingeschränkten Satz von API-Vorgängen. Bei der Ausführungsform erzeugt der Server einen gemeinsam genutzten geheimen Schlüssel und speichert den gemeinsam genutzten geheimen Schlüssel innerhalb der Sitzung. Bei einer oder mehreren Ausführungsformen handelt es sich bei dem gemeinsam genutzten geheimen Schlüssel um Daten, die nur dem Client und dem Server bekannt sind, die mithilfe eines Schlüsselaustauschprotokolls wie zum Beispiel einer Verschlüsselung mit öffentlichem Schlüssel erzeugt werden. Bei bestimmten Ausführungsformen handelt es sich bei dem gemeinsam genutzten geheimen Schlüssel um ein Kennwort, eine Kennphrase oder eine pseudo-zufällig erzeugte Zahl oder Zeichenfolge. Bei der Ausführungsform sendet der Server eine Anmeldeantwort an den Client zurück, die sitzungsspezifische Daten und den gemeinsam genutzten geheimen Schlüssel enthält.
  • Bei der Ausführungsform erzeugt die Client-Anwendung einen einmaligen Kenncode (OTP) auf Grundlage des gemeinsam genutzten geheimen Schlüssels. Bei einer bestimmten Ausführungsform wird der OTP aus dem gemeinsam genutzten geheimen Schlüssel mithilfe eines Algorithmus für einen einmaligen Kenncode auf Grundlage der Zeit (time-based one time passcode, TOTP) erzeugt, wie zum Beispiel in M'Raihi, D., Machani, S., Pei, M., Rydell, J., „TOTP: Time-Based One-Time Password Algorithm“, Request for Comments (RFC) 6238, Internet Engineering Task Force (IETF), Mai 2011, beschrieben. Bei einer oder mehreren Ausführungsformen kombiniert der Server den gemeinsam genutzten geheimen Schlüssel mit einer aktuellen Zeitmarke mithilfe einer kryptographischen Hash-Funktion, um den einmaligen Kenncode zu erzeugen. Bei der Ausführungsform sendet der Client eine API-Anforderung an den Server, die den OTP enthält, die ein Einrichten des gemeinsam genutzten geheimen Schlüssels in einem Benutzerprofil anfordert, das dem Benutzer zugehörig ist.
  • Als Reaktion auf das Empfangen des OTP überprüft der Server diesen OTP anhand des gemeinsam genutzten geheimen Schlüssels. Wenn die Überprüfung erfolgreich ist, speichert der Server den gemeinsam genutzten geheimen Schlüssel in dem Benutzerprofil und sendet eine Erfolgsantwort an den Client zurück. Bei der Ausführungsform speichert die Client-Anwendung den gemeinsam genutzten geheimen Schlüssel in den REST-API-Client-Vorgaben oder in einer weiteren Datenbank. Bei der Ausführungsform erfordern nachfolgende Anmeldungen von dem Benutzer, dass der Benutzer die Benutzer-ID, das Kennwort und einen aktuellen OTP auf Grundlage des gemeinsam genutzten geheimen Schlüssels sendet, um für den Server auf Berechtigung geprüft zu werden, um Zugriff auf Anwendungen und Dienste zu erlangen, die durch den Server bereitgestellt werden.
  • Die veranschaulichenden Ausführungsformen werden im Hinblick auf bestimmte Typen von Diensten, Übertragungen, Datenverarbeitungssystemen, Umgebungen, Komponenten und Anwendungen lediglich als Beispiele beschrieben. Jegliche spezifischen Ausprägungen dieser und sonstiger ähnlicher Artefakte sollen die Erfindung nicht beschränken. Jegliche geeignete Ausprägung dieser und sonstiger ähnlicher Artefakte kann innerhalb des Umfangs der veranschaulichenden Ausführungsformen gewählt werden.
  • Des Weiteren können die veranschaulichenden Ausführungsformen im Hinblick auf einen beliebigen Typ von Daten, Datenquellen oder Zugriff auf eine Datenquelle über ein Datennetzwerk implementiert werden. Jeglicher Typ von Datenspeichereinheit kann die Daten innerhalb des Umfangs der Erfindung für eine Ausführungsform der Erfindung bereitstellen, entweder lokal in einem Datenverarbeitungssystem oder über ein Datennetzwerk. Wenn eine Ausführungsform mithilfe einer mobilen Einheit beschrieben wird, kann ein beliebiger Typ einer Datenspeichereinheit, der zur Verwendung mit der mobilen Einheit geeignet ist, innerhalb des Umfangs der veranschaulichenden Ausführungsformen die Daten für eine solche Ausführungsform bereitstellen, entweder lokal auf der mobilen Einheit oder über ein Datennetzwerk.
  • Die veranschaulichenden Ausführungsformen werden mithilfe von spezifischem Code, spezifischen Ausgestaltungen, Architekturen, Protokollen, Layouts, Schemata und Werkzeugen lediglich als Beispiele beschrieben und bedeuten keine Beschränkung auf die veranschaulichenden Ausführungsformen. Des Weiteren werden die veranschaulichenden Ausführungsformen in einigen Fällen mithilfe bestimmter Software, Werkzeuge und Datenverarbeitungsumgebungen lediglich als Beispiel zur deutlichen Beschreibung beschrieben. Die veranschaulichenden Ausführungsformen können zusammen mit sonstigen vergleichbaren oder für ähnliche Zwecke bestimmten Strukturen, Systemen, Anwendungen oder Architekturen verwendet werden. Beispielsweise können sonstige vergleichbare mobile Einheiten, Strukturen, Systeme, Anwendungen oder Architekturen dafür innerhalb des Umfangs der Erfindung zusammen mit einer solchen Ausführungsform der Erfindung verwendet werden. Eine veranschaulichende Ausführungsform kann in Hardware, Software oder einer Kombination von diesen implementiert werden.
  • Die Beispiele in dieser Offenbarung werden lediglich der Deutlichkeit der Beschreibung halber verwendet und bedeuten keine Beschränkung auf die veranschaulichenden Ausführungsformen. Zusätzliche Daten, Vorgänge, Maßnahmen, Aufgaben, Aktivitäten und Manipulationen werden aus dieser Offenbarung ersichtlich, und dieselben werden innerhalb des Umfangs der veranschaulichenden Ausführungsformen in Betracht gezogen.
  • Jegliche Vorteile, die hierin aufgeführt werden, dienen lediglich als Beispiele und sollen keine Beschränkung auf die veranschaulichenden Ausführungsformen bedeuten. Zusätzliche oder unterschiedliche Vorteile können durch spezifische veranschaulichende Ausführungsformen umgesetzt werden. Des Weiteren kann eine bestimmte veranschaulichende Ausführungsform einige, alle oder keine der oben aufgeführten Vorteile aufweisen.
  • Unter Bezugnahme auf die Figuren und insbesondere unter Bezugnahme auf die 1 und 2 sind diese Figuren beispielhafte Schaubilder von Datenverarbeitungsumgebungen, in denen veranschaulichende Ausführungsformen implementiert werden können. Die 1 und 2 dienen lediglich als Beispiele und sind nicht dazu bestimmt, eine Einschränkung in Bezug auf die Umgebungen, in denen verschiedene Ausführungsformen implementiert werden können, geltend zu machen oder zu implizieren. Eine bestimmte Implementierung kann auf Grundlage der folgenden Beschreibung zahlreiche Modifizierungen an den dargestellten Umgebungen vornehmen.
  • 1 stellt ein Blockschaubild eines Netzwerks von Datenverarbeitungssystemen dar, in dem veranschaulichende Ausführungsformen implementiert werden können. Bei einer Datenverarbeitungsumgebung 100 handelt es sich um ein Netzwerk von Computern, in dem die veranschaulichenden Ausführungsformen implementiert werden können. Die Datenverarbeitungsumgebung 100 enthält ein Netzwerk 102. Bei dem Netzwerk 102 handelt es sich um das Medium, das zum Bereitstellen von Datenübertragungsverbindungen zwischen verschiedenen Einheiten und Computern verwendet wird, die innerhalb der Datenverarbeitungsumgebung 100 miteinander verbunden sind. Das Netzwerk 102 kann Verbindungen wie zum Beispiel drahtgebundene und drahtlose Datenaustauschverbindungen oder Lichtwellenleiterkabel enthalten.
  • Bei Clients oder Servern handelt es sich lediglich um beispielhafte Rollen bestimmter Datenverarbeitungssysteme, die mit dem Netzwerk 102 verbunden sind, und sie sollen sonstige Konfigurationen oder Rollen für diese Datenverarbeitungssysteme nicht ausschließen. Ein Server 104 und ein Server 106 sind zusammen mit einer Speichereinheit 108 mit dem Netzwerk 102 verbunden. Software-Anwendungen können auf einem beliebigen Computer in der Datenverarbeitungsumgebung 100 ausgeführt werden. Darüber hinaus sind Clients 110, 112 und 114 mit dem Netzwerk 102 verbunden. Ein Datenverarbeitungssystem wie zum Beispiel der Server 104 oder 106 oder der Client 110, 112 oder 114 kann Daten enthalten, und es können Software-Anwendungen und Software-Werkzeuge darauf ausgeführt werden.
  • Lediglich als Beispiel und ohne jegliche Beschränkung auf eine solche Architektur zu implizieren, stellt 1 bestimmte Komponenten dar, die in einer beispielhaften Implementierung einer Ausführungsform verwendbar sind. Beispielsweise werden die Server 104 und 106 und die Clients 110, 112, 114 nur beispielhaft als Server und Clients dargestellt und nicht, um eine Beschränkung einer Client-/Server-Architektur zu implizieren. Als weiteres Beispiel kann eine Ausführungsform innerhalb des Umfangs der veranschaulichenden Ausführungsformen über mehrere Datenverarbeitungssysteme und ein Datennetzwerk hinweg verteilt sein, wie dargestellt, wohingegen eine weitere Ausführungsform in einem einzigen Datenverarbeitungssystem implementiert sein kann. Die Datenverarbeitungssysteme 104, 106, 110, 112 und 114 stellen darüber hinaus beispielhafte Knoten in einem Verbund, Partitionen und sonstige Konfigurationen dar, die zum Implementieren einer Ausführungsform geeignet sind.
  • Bei einer Einheit 132 handelt es sich um ein Beispiel für eine hierin beschriebene Einheit. Beispielsweise kann die Einheit 132 die Form eines Smartphones, eines Tablet-Computers, eines Laptop-Computers, eines Clients 110 in einer ortsgebundenen oder einer mobilen Form, einer tragbaren Datenverarbeitungseinheit oder einer beliebigen sonstigen geeigneten Einheit annehmen. Jegliche Software-Anwendung, die in 1 so beschrieben wird, dass sie in einem weiteren Datenverarbeitungssystem ausgeführt wird, kann so konfiguriert werden, dass sie in ähnlicher Weise in der Einheit 132 ausgeführt wird. Jegliche Daten oder Informationen, die in 1 in einem weiteren Datenverarbeitungssystem gespeichert oder erzeugt werden, können so konfiguriert werden, dass sie in ähnlicher Weise in der Einheit 132 gespeichert oder erzeugt werden.
  • Eine Server-Anwendung 105 des Servers 104 implementiert eine Ausführungsform von Server-seitigen Vorgängen zur Berechtigungsprüfung, die hierin beschrieben werden. Eine Datenbank 109 kann in dem Speicher 108 gespeichert sein, wie dargestellt, oder durch eine (nicht dargestellte) weitere Quelle bereitgestellt werden. Bei bestimmten Ausführungsformen kann die Datenbank 109 Benutzerprofildaten speichern, die einem oder mehreren Benutzern zugehörig sind. Eine Client-Anwendung 111 implementiert eine Ausführungsform von Client-seitigen Vorgängen zur Berechtigungsprüfung, die hierin beschrieben werden.
  • Die Server 104 und 106, die Speichereinheit 108 und die Clients 110, 112 und 114 und die Einheit 132 können mithilfe von drahtgebundenen Verbindungen, drahtlosen Datenübertragungsprotokollen oder einer sonstigen geeigneten Datenkonnektivität eine Verbindung mit dem Netzwerk 102 herstellen. Bei den Clients 110, 112 und 114 kann es sich zum Beispiel um Personal-Computer oder Netzwerkcomputer handeln.
  • In dem dargestellten Beispiel kann der Server 104 den Clients 110, 112 und 114 Daten wie zum Beispiel Boot-Dateien, Betriebssystemabbilder und Anwendungen bereitstellen. In diesem Beispiel kann es sich bei den Clients 110, 112 und 114 um Clients des Servers 104 handeln. Die Clients 110, 112, 114 oder eine Kombination von diesen können ihre eigenen Daten, Boot-Dateien, Betriebssystemabbilder und Anwendungen enthalten. Die Datenverarbeitungsumgebung 100 kann zusätzliche Server, Clients und sonstige Einheiten enthalten, die nicht dargestellt sind.
  • In dem dargestellten Beispiel kann es sich bei der Datenverarbeitungsumgebung 100 um das Internet handeln. Das Netzwerk 102 kann einen Bestand von Netzwerken und Gateways darstellen, die das Transmission-Control-Protocol/Internet-Protocol (TCP/IP) und sonstige Protokolle dazu verwenden, Daten miteinander auszutauschen. Im Kern des Internet befindet sich eine Zentralverbindung aus Datenübertragungsverbindungen zwischen Hauptknoten oder Host-Computern, die Tausende von kommerziellen, behördlichen, Bildungs- und sonstigen Computersystemen enthalten, die Daten und Nachrichten weiterleiten. Selbstverständlich kann die Datenverarbeitungsumgebung 100 auch als eine Reihe verschiedener Netzwerktypen wie zum Beispiel ein Intranet, ein lokales Netzwerk (local area network, LAN) oder ein Weitverkehrs-Netzwerk (wide area network, WAN) implementiert werden. 1 ist als Beispiel gemeint und nicht als architektonische Einschränkung der verschiedenen veranschaulichenden Ausführungsformen.
  • Neben sonstigen Verwendungen kann die Datenverarbeitungsumgebung 100 zum Implementieren einer Client-/Server-Umgebung verwendet werden, in der die veranschaulichenden Ausführungsformen implementiert werden können. Eine Client-/Server-Umgebung ermöglicht, dass Software-Anwendungen und Daten so über ein Netzwerk hinweg verteilt werden, dass eine Anwendung mithilfe der Interaktivität zwischen einem Client-Datenverarbeitungssystem und einem Server-Datenverarbeitungssystem funktioniert. Die Datenverarbeitungsumgebung 100 kann auch eine Service-orientierte Architektur einsetzen, in der funktionell aufeinander abgestimmte Software-Komponenten, die über ein Netzwerk hinweg verteilt sind, als zusammenhängende Geschäftsanwendungen gebündelt werden können. Die Datenverarbeitungsumgebung 100 kann auch die Form einer Cloud annehmen und ein Cloud-Computing-Modell zum Erbringen von Diensten einsetzen, um einen praktischen, bedarfsgesteuerten Netzwerkzugriff auf einen gemeinsam genutzten Pool von konfigurierbaren Datenverarbeitungs-Ressourcen (z.B. Netzwerken, Netzwerkbandbreite, Servern, Verarbeitung, Arbeitsspeicher, Speicher, Anwendungen, virtuellen Maschinen und Diensten) zu ermöglichen, die schnell mit möglichst geringem Verwaltungsaufwand oder Zusammenwirken mit einem Anbieter des Dienstes bereitgestellt und freigegeben werden können.
  • Unter Bezugnahme auf 2 stellt diese Figur ein Blockschaubild eines Datenverarbeitungssystems dar, in dem veranschaulichende Ausführungsformen implementiert werden können. Bei einem Datenverarbeitungssystem 200 handelt es sich um ein Beispiel für einen Computer wie etwa die Server 104 und 106 oder die Clients 110, 112 und 114 in 1 oder um einen weiteren Typ von Einheit, in dem sich von einem Computer verwendbarer Programmcode oder Anweisungen, die die Prozesse implementieren, für die veranschaulichenden Ausführungsformen befinden können.
  • Das Datenverarbeitungssystem 200 ist darüber hinaus repräsentativ für ein Datenverarbeitungssystem oder eine Konfiguration darin wie zum Beispiel die Einheit 132 in 1, in der sich von einem Computer verwendbarer Programmcode oder Anweisungen befinden können, die die Prozesse der veranschaulichenden Ausführungsformen implementieren. Das Datenverarbeitungssystem 200 wird lediglich als Beispiel als Computer beschrieben, ohne darauf beschränkt zu sein. Implementierungen in Form sonstiger Einheiten wie zum Beispiel der Einheit 132 in 1 können das Datenverarbeitungssystem 200 modifizieren, wie etwa durch Hinzufügen einer Berührungsschnittstelle, und sogar bestimmte dargestellte Komponenten aus dem Datenverarbeitungssystem 200 entfernen, ohne von der allgemeinen Beschreibung der Vorgänge und Funktionen des hierin beschriebenen Datenverarbeitungssystems 200 abzuweichen.
  • In dem dargestellten Beispiel verwendet das Datenverarbeitungssystem 200 eine Hub-Architektur, die einen North-Bridge- und Speichersteuereinheiten-Hub (NB/MCH) 202 und einen South-Bridge- und Eingabe/Ausgabe(E/A)-Steuereinheiten-Hub (SB/ICH) 204 enthält. Eine Verarbeitungseinheit 206, ein Hauptspeicher 208 und ein Grafikprozessor 210 sind mit dem North-Bridge- und Speichersteuereinheiten-Hub (NB/MCH) 202 verbunden. Die Verarbeitungseinheit 206 kann einen oder mehrere Prozessoren enthalten und kann mithilfe eines oder mehrerer heterogener Prozessorsysteme implementiert werden. Bei der Verarbeitungseinheit 206 kann es sich um einen Mehrkernprozessor handeln. Der Grafikprozessor 210 kann bei bestimmten Implementierungen durch einen Accelerated Graphics Port (AGP) mit dem NB/MCH 202 verbunden sein.
  • In dem dargestellten Beispiel ist ein Adapter 212 für ein lokales Netzwerk (LAN) mit dem South-Bridge- und E/A-Steuereinheiten-Hub (SB/ICH) 204 verbunden. Ein Audioadapter 216, ein Tastatur- und Mausadapter 220, ein Modem 222, ein Festwertspeicher (read only memory, ROM) 224, Anschlüsse für universelle serielle Busse (USB) und sonstige Anschlüsse 232 und PCI/PCIe-Einheiten 234 sind durch einen Bus 238 mit dem South-Bridge- und E/A-Steuereinheiten-Hub 204 verbunden. Ein Festplattenlaufwerk (hard disk drive, HDD) oder Solid-State-Laufwerk (SSD) 226 und ein CD-ROM-Laufwerk 230 sind durch einen Bus 240 mit dem South-Bridge- und E/A-Steuereinheiten-Hub 204 verbunden. Zu den PCI/PCIe-Einheiten 234 können zum Beispiel Ethernet-Adapter, Erweiterungskarten und PC-Karten für Notebook-Computer gehören. Im Gegensatz zu PCle verwendet PCI eine Kartenbus-Steuereinheit. Bei dem ROM 224 kann es sich zum Beispiel um ein binäres Eingabe/Ausgabe-Flash-System (binary input/output system, BIOS) handeln. Das Festplattenlaufwerk 226 und das CD-ROM-Laufwerk 230 können zum Beispiel eine Integrated-Drive-Electronics(IDE)- oder eine Serial-Advanced-Technology-Attachment(SATA)-Schnittstelle oder Varianten wie zum Beispiel external-SATA (eSATA) und micro-SATA (mSATA) verwenden. Eine Super-E/A- (super I/O, SIO-) Einheit 236 kann durch den Bus 238 mit dem South-Bridge- und E/A-Steuereinheiten-Hub (SB/ICH) 204 verbunden sein.
  • Speicher wie etwa der Hauptspeicher 208, der ROM 224 oder ein (nicht dargestellter) Flash-Speicher sind einige Beispiele für von einem Computer verwendbare Speichereinheiten. Das Festplattenlaufwerk oder das Solid-State-Laufwerk 226, das CD-ROM-Laufwerk 230 und sonstige in ähnlicher Weise verwendbare Einheiten sind einige Beispiele für von einem Computer verwendbare Speichereinheiten, die ein von einem Computer verwendbares Speichermedium enthalten.
  • Ein Betriebssystem wird auf der Verarbeitungseinheit 206 ausgeführt. Das Betriebssystem koordiniert eine Steuerung verschiedener Komponenten innerhalb des Datenverarbeitungssystems 200 in 2 und stellt sie bereit. Bei dem Betriebssystem kann es sich um ein handelsübliches Betriebssystem für einen beliebigen Typ einer Datenverarbeitungsplattform handeln, darunter um Server-Systeme, Personal-Computer und mobile Einheiten, ohne darauf beschränkt zu sein. Ein objektorientiertes oder ein andersartiges Programmiersystem kann zusammen mit dem Betriebssystem arbeiten und Aufrufe an das Betriebssystem von Programmen oder Anwendungen bereitstellen, die in dem Datenverarbeitungssystem 200 ausgeführt werden.
  • Anweisungen für das Betriebssystem, das objektorientierte Programmiersystem und Anwendungen oder Programme wie zum Beispiel die Server-Anwendung 105 oder die Client-Anwendung 111 in 1 befinden sich auf Speichereinheiten wie zum Beispiel in Form eines Codes 226A auf dem Festplattenlaufwerk 226 und können zur Ausführung durch die Verarbeitungseinheit 206 in zumindest einen von einem oder mehreren Speichern wie zum Beispiel den Hauptspeicher 208 geladen werden. Die Prozesse für veranschaulichende Ausführungsformen können durch die Verarbeitungseinheit 206 mithilfe von auf einem Computer implementierten Anweisungen durchgeführt werden, die sich in einem Speicher wie beispielsweise dem Hauptspeicher 208, dem Festwertspeicher 224 oder in einer oder mehreren Peripherieeinheiten befinden können.
  • Darüber hinaus kann in einem Fall der Code 226A über ein Netzwerk 201A von einem entfernt angeordneten System 201B heruntergeladen werden, wobei ein ähnlicher Code 201C auf einer Speichereinheit 201D gespeichert wird. In einem weiteren Fall kann der Code 226A über das Netzwerk 201A auf ein entfernt angeordnetes System 201B heruntergeladen werden, wobei der heruntergeladene Code 201C auf einer Speichereinheit 201D gespeichert wird.
  • Die Hardware in den 1 bis 2 kann abhängig von der Implementierung variieren. Sonstige interne Hardware oder Peripherieeinheiten wie zum Beispiel ein Flash-Speicher, ein gleichwertiger nichtflüchtiger Speicher oder optische Plattenlaufwerke und dergleichen können zusätzlich oder anstelle der in 1 bis 2 dargestellten Hardware verwendet werden. Darüber hinaus können die Prozesse der veranschaulichenden Ausführungsformen auf ein Mehrprozessor-Datenverarbeitungssystem angewendet werden.
  • Bei einigen veranschaulichenden Beispielen kann es sich bei dem Datenverarbeitungssystem 200 um einen persönlichen digitalen Assistenten (PDA) handeln, der im Allgemeinen mit einem Flash-Speicher so konfiguriert ist, dass er einen nichtflüchtigen Speicher zum Speichern von Betriebssystemdateien und/oder vom Benutzer erzeugten Daten bereitstellt. Ein Bussystem kann einen oder mehrere Busse wie zum Beispiel einen Systembus, einen E/A-Bus und einen PCI-Bus aufweisen. Das Bussystem kann selbstverständlich mithilfe eines beliebigen Typs einer Datenübertragungsstruktur oder Architektur implementiert werden, der eine Übertragung von Daten zwischen verschiedenen, mit der Struktur oder Architektur verbundenen Komponenten oder Einheiten bereitstellt.
  • Eine Datenübertragungseinheit kann eine oder mehrere Einheiten enthalten, die zum Übertragen und Empfangen von Daten verwendet werden, wie zum Beispiel einen Modem oder einen Netzwerkadapter. Bei einem Speicher kann es sich zum Beispiel um den Hauptspeicher 208 oder um einen Cache wie etwa den Cache handeln, der in dem North-Bridge- und Speichersteuereinheiten-Hub 202 zu finden ist. Eine Verarbeitungseinheit kann eine(n) oder mehrere Prozessoren oder CPUs enthalten.
  • Die in den 1 bis 2 dargestellten Beispiele und die oben beschriebenen Beispiele sind nicht dazu bestimmt, der Architektur Beschränkungen aufzuerlegen. Beispielsweise kann es sich bei dem Datenverarbeitungssystem 200 zusätzlich dazu, dass es die Form einer mobilen oder tragbaren Einheit annimmt, auch um einen Tablet-Computer, einen Laptop-Computer oder um eine Telefoneinheit handeln.
  • Wo ein Computer oder ein Datenverarbeitungssystem als virtuelle Maschine, virtuelle Einheit oder virtuelle Komponente beschrieben wird, arbeitet die virtuelle Maschine, die virtuelle Einheit oder die virtuelle Komponente in der Weise des Datenverarbeitungssystems 200 mithilfe einer virtualisierten Ausprägung einiger oder sämtlicher Komponenten, die in dem Datenverarbeitungssystem 200 dargestellt sind. In einer virtuellen Maschine, einer virtuellen Einheit oder einer virtuellen Komponente ist die Verarbeitungseinheit 206 zum Beispiel als virtualisierte Instanz sämtlicher oder eines Teils von Hardware-Verarbeitungseinheiten 206 ausgeprägt, die in einem Host-Datenverarbeitungssystem verfügbar sind, der Hauptspeicher 208 ist als virtualisierte Instanz des gesamten oder eines Teils des Hauptspeichers 208 ausgeprägt, der in dem Host-Datenverarbeitungssystem verfügbar sein kann, und die Platte 226 ist als virtualisierte Instanz des gesamten oder eines Teils der Platte 226 ausgeprägt, die in dem Host-Datenverarbeitungssystem verfügbar sein kann. In solchen Fällen wird das Host-Datenverarbeitungssystem durch das Datenverarbeitungssystem 200 dargestellt.
  • Unter Bezugnahme auf 3 stellt diese Figur ein Blockschaubild einer beispielhaften Konfiguration für ein automatisches Aufrüsten auf eine zweistufige Berechtigungsprüfung gemäß einer veranschaulichenden Ausführungsform dar. Ein Client 302 ist ein Beispiel für den Client 110 in 1, und eine Client-Anwendung 306 ist ein Beispiel für die Client-Anwendung 111 in 1. Ein Server 304 ist ein Beispiel für den Server 104 in 1, und eine Server-Anwendung 314 ist ein Beispiel für die Server-Anwendung 105 in 1. Ein Netzwerk 300 ist ein Beispiel für das Netzwerk 102 in 1.
  • Die Client-Anwendung 306 enthält eine Berechtigungsprüfungskomponente 308, eine REST-API-Komponente 310 und eine Client-Vorgabenkomponente 312. Die Berechtigungsprüfungskomponente 308 ist dazu konfiguriert, Client-seitige Vorgänge zur Berechtigungsprüfung wie zum Beispiel ein Erzeugen eines OTP aus einem gemeinsam genutzten geheimen Schlüssel durchzuführen, wie hierin beschrieben. Die REST-API-Komponente 310 ist dazu konfiguriert, Nachrichtenvorgänge auf Grundlage von REST durchzuführen, zum Beispiel zwischen dem Client 302 und dem Server 304, wie hierin beschrieben. Die Client-Vorgabenkomponente 312 ist dazu konfiguriert, Client-Vorgabendaten zu speichern, die einem Benutzer 322 des Clients 302 zugehörig sind, wie zum Beispiel ein von dem Server 304 empfangener, gemeinsam genutzter geheimer Schlüssel, wie hierin beschrieben.
  • Die Server-Anwendung 314 enthält eine Berechtigungsprüfungskomponente 316, eine REST-API-Komponente 318 und eine Benutzerprofilkomponente 320. Die Berechtigungsprüfungskomponente 316 ist dazu konfiguriert, Server-seitige Vorgänge zur Berechtigungsprüfung wie zum Beispiel ein Erzeugen eines gemeinsam genutzten geheimen Schlüssels, ein Überprüfen einer Kombination aus Benutzer-ID/Kennwort und ein Überprüfen eines bestimmten OTP anhand eines gemeinsam genutzten geheimen Schlüssels durchzuführen, wie hierin beschrieben. Die REST-API-Komponente 318 ist dazu konfiguriert, Nachrichtenvorgänge auf Grundlage von REST durchzuführen, zum Beispiel zwischen dem Server 304 und dem Client 302, wie hierin beschrieben. Die Benutzerprofilkomponente 320 ist dazu konfiguriert, Benutzerprofildaten zu speichern, die dem Benutzer 322 des Clients 302 zugehörig sind, wie zum Beispiel den durch die Berechtigungsprüfungskomponente 316 erzeugten, gemeinsam genutzten geheimen Schlüssel, wie hierin beschrieben.
  • Bei einer Ausführungsform wird ein Prozess für eine zweistufige Berechtigungsprüfung für Anwendungen und Dienste bereitgestellt, die eine REST-API einsetzen, in dem der Benutzer 322 der Client-Anwendung 306 des Clients 302 eine Benutzer-ID und ein Kennwort bereitstellt und die Client-Anwendung 306 die Benutzer-ID und das Kennwort an die Server-Anwendung 314 des Servers 304 überträgt. Als Reaktion auf das Empfangen der Benutzer-ID und des Kennworts überprüft die Server-Anwendung 314 die Benutzer-ID und das Kennwort. Bei einem erfolgreichen Überprüfen der Benutzer-ID und des Kennworts ermittelt die Server-Anwendung 314, ob der Benutzer 322 von einer einstufigen Berechtigungsprüfung auf eine zweistufige Berechtigungsprüfung aufgerüstet werden soll. Wenn der Benutzer 322 nicht von einer einstufigen Berechtigungsprüfung auf eine zweistufige Berechtigungsprüfung aufgerüstet werden soll, baut der Server 304 eine auf Berechtigung geprüfte Sitzung zwischen dem Client 302 und dem Server 304 mit vollständigen Berechtigungen/vollständigem Zugriff für/auf API-Vorgänge für den Client 302 auf. Wenn der Benutzer 322 von einer einstufigen Berechtigungsprüfung auf eine zweistufige Berechtigungsprüfung aufgerüstet werden soll, baut der Server 304 eine auf Berechtigung geprüfte Sitzung zwischen dem Client 302 und dem Server 304 mit eingeschränkter Berechtigung im Hinblick auf zulässige API-Vorgänge für den Client 302 auf. Der Server 304 sendet eine Anmeldeantwort, die den durch die Berechtigungsprüfungskomponente 316 erzeugten, gemeinsam genutzten geheimen Schlüssel enthält, an den Client 302. Client 302 empfängt die Anmeldeantwort, die den gemeinsam genutzten geheimen Schlüssel enthält, und erzeugt einen einmaligen Kenncode (OTP) auf Grundlage des gemeinsam genutzten geheimen Schlüssels. Der Client 302 sendet eine API-Anforderung, die den OTP enthält, an den Server 304, die angibt, dass der gemeinsam genutzte geheime Schlüssel in einem Benutzerprofil eingerichtet werden soll, das dem Benutzer 322 zugehörig ist. Der Server 304 empfängt die Anforderung, die den OTP enthält, und überprüft den OTP anhand des gemeinsam genutzten geheimen Schlüssels. Wenn der Server 304 den OTP anhand des gemeinsam genutzten geheimen Schlüssels erfolgreich überprüft, setzt der Server 304 die auf Berechtigung geprüfte Sitzung zwischen dem Server 304 und dem Client 302 fort, in der dem Client 302 vollständige Berechtigungen/vollständiger Zugriff für/auf API-Vorgänge gewährt wird. Der Server 304 speichert den gemeinsam genutzten geheimen Schlüssel in dem Benutzerprofil, so dass nachfolgende Anmeldungen durch die Client-Anwendung 306 die Benutzer-ID, das Kennwort und einen aktuellen OTP erfordern, der auf Grundlage des gemeinsam genutzten geheimen Schlüssels erzeugt wird.
  • Unter Bezugnahme auf 4 stellt diese Figur einen Nachrichtenfluss eines beispielhaften Prozesses für ein automatisches Aufrüsten auf eine zweistufige Berechtigungsprüfung gemäß einer veranschaulichenden Ausführungsform dar. Bei einer oder mehreren Ausführungsformen kann ein Nachrichtenfluss 400 in der Client-Anwendung 306 und der Server-Anwendung 314 von 3 implementiert werden.
  • In 402 empfängt der Client 302 eine Benutzer-ID und ein Kennwort von dem Benutzer 322. In 404 sendet der Client 302 die Benutzer-ID und das Kennwort an den Server 304. In 406 überprüft der Server 304 die Berechtigung des Benutzers 322 mithilfe eines ersten Berechtigungsprüfungsfaktors durch Überprüfen der Benutzer-ID und des Kennworts. Wenn bestimmt wird, dass der Benutzer 322 ein Aufrüsten von einer einstufigen Berechtigungsprüfung auf eine zweistufige Berechtigungsprüfung benötigt, erzeugt der Server 304 in 408 einen gemeinsam genutzten geheimen Schlüssel und baut eine auf Berechtigung geprüfte Sitzung mit dem Client 302 auf. Bei einer bestimmten Ausführungsform weist die auf Berechtigung geprüfte Sitzung eingeschränkte(n) Berechtigungen/Zugriff von API-Vorgängen für den Client 302 auf. In 410 sendet der Server 304 sitzungsspezifische Daten und den gemeinsam genutzten geheimen Schlüssel mithilfe der auf Berechtigung geprüften Sitzung an den Client 302. In 412 erzeugt der Client 302 einen einmaligen Kenncode (OTP) auf Grundlage des gemeinsam genutzten geheimen Schlüssels. In 414 sendet der Client 302 den auf Grundlage des gemeinsam genutzten geheimen Schlüssels erzeugten OTP an den Server 304.
  • In 416 überprüft der Server 304 den OTP anhand des gemeinsam genutzten geheimen Schlüssels. Wenn der OTP überprüft ist, speichert der Server 304 in 418 den gemeinsam genutzten geheimen Schlüssel in einem Benutzerprofil, das dem Benutzer 322 zugehörig ist. In 420 sendet der Server 304 eine Berechtigungsprüfungsantwort an den Client 302, um die auf Berechtigung geprüfte Sitzung fortzusetzen, in der der Client 302 über vollständige(n) Berechtigungen/Zugriff für/auf API-Vorgänge verfügt, um Zugriff auf Anwendungen und/oder Dienste zu erlangen, die durch den Server 304 oder einen weiteren Server bereitgestellt werden. In 422 speichert der Client 302 den gemeinsam genutzten geheimen Schlüssel in der Client-Vorgabenkomponente 312. Danach endet der Nachrichtenfluss 400. Bei der Ausführungsform erfordern nachfolgende Anmeldungen von dem Benutzer 322, dass der Benutzer 322 die Benutzer-ID, das Kennwort und einen aktuellen OTP bereitstellt, der auf Grundlage des gemeinsam genutzten geheimen Schlüssels erzeugt wird, um für den Server auf Berechtigung geprüft zu werden, um Zugriff auf Anwendungen und Dienste zu erlangen, die durch den Server bereitgestellt werden.
  • Unter Bezugnahme auf 5 stellt diese Figur einen Ablaufplan eines beispielhaften Client-seitigen Prozesses für ein automatisches Aufrüsten auf eine zweistufige Berechtigungsprüfung gemäß einer veranschaulichenden Ausführungsform dar. Bei einer oder mehreren Ausführungsformen kann ein Prozess 500 in der Client-Anwendung 306 in 3 implementiert werden. In 502 fragt die Client-Anwendung 306 eine Benutzer-ID und ein Kennwort von dem Benutzer 322 ab. In 504 empfängt die Client-Anwendung 306 die Benutzer-ID und das Kennwort von dem Benutzer 322. In 506 sendet die Client-Anwendung 306 die Benutzer-ID und das Kennwort an den Server 304.
  • Wenn bestimmt wird, dass der Benutzer 322 ein Aufrüsten von einer einstufigen Berechtigungsprüfung auf eine zweistufige Berechtigungsprüfung benötigt, erzeugt der Server 304 einen gemeinsam genutzten geheimen Schlüssel. In Block 508 baut der Client 302 eine auf Berechtigung geprüfte Sitzung mit dem Server 304 auf. Bei einer bestimmten Ausführungsform weist die erste auf Berechtigung geprüfte Sitzung eingeschränkte(n) Berechtigungen/Zugriff für/auf API-Vorgänge für den Client 302 auf. In 510 empfängt der Client 302 eine Anmeldeantwort, die den gemeinsam genutzten geheimen Schlüssel enthält, mithilfe der auf Berechtigung geprüften Sitzung von dem Server 304.
  • In 512 erzeugt der Client 302 einen einmaligen Kenncode (OTP) auf Grundlage des von dem Server 304 empfangenen, gemeinsam genutzten geheimen Schlüssels. In 514 sendet der Client 302 den auf Grundlage des gemeinsam genutzten geheimen Schlüssels erzeugten OTP an den Server 304. Der Server 304 überprüft den OTP anhand des gemeinsam genutzten geheimen Schlüssels. Wenn der OTP überprüft ist, speichert der Server 304 den gemeinsam genutzten geheimen Schlüssel in einem Benutzerprofil, das dem Benutzer 322 zugehörig ist. In 516 empfängt der Client 302 eine Berechtigungsprüfungsantwort von dem Server 304. In 518 ermittelt der Client 302, ob die Berechtigungsprüfungsantwort angibt, dass die Berechtigung des Benutzers 322 geprüft ist. Wenn die Berechtigung des Benutzers 322 nicht geprüft ist, endet der Prozess 500. Wenn die Berechtigung des Benutzers 322 geprüft ist, setzt der Client 302 in 520 die auf Berechtigung geprüfte Sitzung mit dem Server 304 fort, in der dem Client 302 vollständige(r) Berechtigungen/Zugriff für/auf API-Vorgänge gewährt werden, um Zugriff auf Anwendungen und/oder Dienste zu erlangen, die durch den Server 304 oder einen weiteren Server bereitgestellt werden. In 522 speichert der Client 302 den gemeinsam genutzten geheimen Schlüssel in der Client-Vorgabenkomponente 312. Danach beendet die Client-Anwendung 306 den Prozess 500. Bei der Ausführungsform erfordern nachfolgende Anmeldungen von dem Benutzer 322, dass der Benutzer 322 die Benutzer-ID, das Kennwort und einen aktuellen OTP bereitstellt, der auf Grundlage des gemeinsam genutzten geheimen Schlüssels erzeugt wird, um für den Server 304 auf Berechtigung geprüft zu werden, um Zugriff auf Anwendungen und Dienste zu erlangen, die durch den Server bereitgestellt werden.
  • Unter Bezugnahme auf 6 stellt diese Figur einen Ablaufplan eines beispielhaften Server-seitigen Prozesses für ein automatisches Aufrüsten auf eine zweistufige Berechtigungsprüfung gemäß einer veranschaulichenden Ausführungsform dar. Bei einer oder mehreren Ausführungsformen kann ein Prozess 600 in der Server-Anwendung 314 in 3 implementiert werden. In 602 empfängt die Server-Anwendung 314 des Servers 304 eine Benutzer-ID und ein Kennwort, die durch den Benutzer 322 bereitgestellt werden, von dem Client 302.
  • In 604 überprüft die Server-Anwendung 314 die Berechtigung des Benutzers 322 mithilfe eines ersten Berechtigungsprüfungsfaktors durch Überprüfen der Benutzer-ID und des Kennworts. In 606 baut die Server-Anwendung 314 eine auf Berechtigung geprüfte Sitzung mit dem Client 302 auf. Bei einer bestimmten Ausführungsform weist die auf Berechtigung geprüfte Sitzung eingeschränkte(n) Berechtigungen/Zugriff von API-Vorgängen für den Client 302 auf. In 608 ermittelt die Server-Anwendung 314, ob ein Aufrüsten des Benutzers 322 von einer Ein-Faktor-Berechtigungsprüfung auf eine Zwei-Faktor-Berechtigungsprüfung erforderlich ist. Wenn bestimmt wird, dass der Benutzer 322 ein Aufrüsten von einer Ein-Faktor-Berechtigungsprüfung auf eine Zwei-Faktor-Berechtigungsprüfung benötigt, erzeugt die Server-Anwendung 314 in 610 einen gemeinsam genutzten geheimen Schlüssel. In 612 sendet die Server-Anwendung 314 eine Anmeldeantwort, die den gemeinsam genutzten geheimen Schlüssel enthält, mithilfe der auf Berechtigung geprüften Sitzung an den Client 302. Als Reaktion auf das Empfangen des gemeinsam genutzten geheimen Schlüssels erzeugt der Client 302 einen einmaligen Kenncode (OTP) auf Grundlage des gemeinsam genutzten geheimen Schlüssels und sendet den auf Grundlage des gemeinsam genutzten geheimen Schlüssels erzeugten OTP an den Server 304.
  • In 614 empfängt die Server-Anwendung 314 den OTP von dem Client 302. In 616 überprüft die Server-Anwendung 314 den OTP anhand des gemeinsam genutzten geheimen Schlüssels. Wenn der OTP überprüft ist, speichert die Server Anwendung 314 in 618 den gemeinsam genutzten geheimen Schlüssel in einem Benutzerprofil, das dem Benutzer 322 zugehörig ist. In 620 setzt der Server 304 die auf Berechtigung geprüfte Sitzung fort, in der dem Client 302 vollständige(r) Berechtigungen/Zugriff für/auf API-Vorgänge gewährt werden, um Zugriff auf Anwendungen und/oder Dienste zu erlangen, die durch den Server 304 oder einen weiteren Server bereitgestellt werden. In 622 sendet die Server-Anwendung 314 eine Berechtigungsprüfungsantwort an den Client 302, die die Fortsetzung der auf Berechtigung geprüften Sitzung angibt. Bei der Ausführungsform erfordern nachfolgende Anmeldungen von dem Benutzer 322, dass der Benutzer 322 die Benutzer-ID, das Kennwort und einen aktuellen OTP bereitstellt, der auf Grundlage des gemeinsam genutzten geheimen Schlüssels erzeugt wird, um für den Server auf Berechtigung geprüft zu werden, um Zugriff auf Anwendungen und/oder Dienste zu erlangen, die durch den Server 304 oder einen weiteren Server bereitgestellt werden. Wenn die Server-Anwendung 314 in 608 ermittelt, dass keine Zwei-Faktor-Berechtigungsprüfung erforderlich ist, sendet die Server-Anwendung 314 in 622 eine Berechtigungsprüfungsantwort an den Client 302, die angibt, dass die auf Berechtigung geprüfte Sitzung durch den Client 302 verwendet werden kann. In einem solchen Fall, in dem der Benutzer 322 nicht auf eine Zwei-Faktor-Berechtigungsprüfung aufgerüstet wird, muss der Benutzer 322 bei nachfolgenden Anmeldungen lediglich die Benutzer-ID und das Kennwort bereitstellen. Danach beendet die Server-Anwendung 314 den Prozess 600.
  • Auf diese Weise werden ein(e) auf einem Computer implementierte(s) Verfahren, System oder Vorrichtung und Computerprogrammprodukt in den veranschaulichenden Ausführungsformen bereitgestellt, um ein automatisches Aufrüsten eines Benutzers von einer einstufigen Berechtigungsprüfung auf eine zweistufige Berechtigungsprüfung und sonstige verwandte Merkmale, Funktionen oder Vorgänge zu ermöglichen. Wo eine Ausführungsform oder ein Abschnitt davon im Hinblick auf einen Typ einer Einheit beschrieben wird, werden das/die auf einem Computer implementierte Verfahren, System oder Vorrichtung, das Computerprogrammprodukt oder ein Abschnitt davon zur Verwendung mit einer geeigneten und vergleichbaren Ausprägung dieses Typs einer Einheit gestaltet oder konfiguriert.
  • Wo eine Ausführungsform als in einer Anwendung implementiert beschrieben wird, wird das Bereitstellen der Anwendung in einem Software-as-a-Service(SaaS)-Modell innerhalb des Umfangs der veranschaulichenden Ausführungsformen in Betracht gezogen. In einem SaaS-Modell wird die Fähigkeit der Anwendung, die eine Ausführungsform implementiert, einem Benutzer durch Ausführen der Anwendung in einer Cloud-Infrastruktur bereitgestellt. Der Benutzer kann mithilfe einer Vielfalt von Client-Einheiten durch eine Thin-Client-Schnittstelle wie zum Beispiel einen Web-Browser (z.B. eMail auf Grundlage des Web) oder sonstige einfache Client-Anwendungen auf die Anwendung zugreifen. Der Benutzer verwaltet oder steuert die zugrunde liegende Cloud-Infrastruktur einschließlich des Netzwerks, der Server, der Betriebssysteme oder des Speichers der Cloud-Infrastruktur nicht. In einigen Fällen verwaltet oder steuert der Benutzer möglicherweise nicht einmal die Fähigkeiten der Saas-Anwendung. In einigen sonstigen Fällen kann die SaaS-Implementierung der Anwendung eine mögliche Ausnahme von eingeschränkten benutzerspezifischen Anwendungskonfigurationseinstellungen zulassen.
  • Bei der vorliegenden Erfindung kann es sich um ein System, ein Verfahren und/oder ein Computerprogrammprodukt mit einem beliebigen Integrationsgrad technischer Details handeln. Das Computerprogrammprodukt kann (ein) durch einen Computer lesbare(s) Speichermedium (oder -medien) enthalten, auf dem/denen durch einen Computer lesbare Programmanweisungen gespeichert ist/sind, um einen Prozessor dazu zu veranlassen, Aspekte der vorliegenden Erfindung auszuführen.
  • Bei dem durch einen Computer lesbaren Speichermedium kann es sich um eine physische Einheit handeln, die Anweisungen zur Verwendung durch ein System zur Ausführung von Anweisungen behalten und speichern kann. Bei dem durch einen Computer lesbaren Speichermedium kann es sich zum Beispiel um eine elektronische Speichereinheit, eine magnetische Speichereinheit, eine optische Speichereinheit, eine elektromagnetische Speichereinheit, eine Halbleiterspeichereinheit oder jede geeignete Kombination daraus handeln, ohne auf diese beschränkt zu sein. Zu einer nicht erschöpfenden Liste spezifischerer Beispiele des durch einen Computer lesbaren Speichermediums gehören die Folgenden: eine tragbare Computerdiskette, eine Festplatte, ein Direktzugriffsspeicher (RAM), ein Nur-Lese-Speicher (ROM), ein löschbarer programmierbarer Nur-Lese-Speicher (EPROM bzw. Flash-Speicher), ein statischer Direktzugriffsspeicher (SRAM), ein tragbarer Kompaktspeicherplatte-Nur-Lese-Speicher (CD-ROM), eine DVD (digital versatile disc), ein Speicher-Stick, eine Diskette, eine mechanisch codierte Einheit wie zum Beispiel Lochkarten oder gehobene Strukturen in einer Rille, auf denen Anweisungen gespeichert sind, und jede geeignete Kombination daraus. Ein durch einen Computer lesbares Speichermedium soll in der Verwendung hierin nicht als flüchtige Signale an sich aufgefasst werden, wie zum Beispiel Funkwellen oder andere sich frei ausbreitende elektromagnetische Wellen, elektromagnetische Wellen, die sich durch einen Wellenleiter oder ein anderes Übertragungsmedium ausbreiten (z.B. durch ein Glasfaserkabel geleitete Lichtimpulse) oder durch einen Draht übertragene elektrische Signale.
  • Hierin beschriebene, durch einen Computer lesbare Programmanweisungen können von einem durch einen Computer lesbaren Speichermedium auf jeweilige Datenverarbeitungs-/Verarbeitungseinheiten oder über ein Netzwerk wie zum Beispiel das Internet, ein lokales Netzwerk, ein Weitverkehrsnetz und/oder ein drahtloses Netzwerk auf einen externen Computer oder eine externe Speichereinheit heruntergeladen werden. Das Netzwerk kann Kupferübertragungskabel, Lichtwellenübertragungsleiter, drahtlose Übertragung, Leitwegrechner, Firewalls, Vermittlungseinheiten, Gateway-Computer und/oder Edge-Server aufweisen. Eine Netzwerkadapterkarte oder Netzwerkschnittstelle in jeder Datenverarbeitungs-/Verarbeitungseinheit empfängt durch einen Computer lesbare Programmanweisungen aus dem Netzwerk und leitet die durch einen Computer lesbaren Programmanweisungen zur Speicherung in einem durch einen Computer lesbaren Speichermedium innerhalb der entsprechenden Datenverarbeitungs-/Verarbeitungseinheit weiter.
  • Bei durch einen Computer lesbaren Programmanweisungen zum Ausführen von Arbeitsschritten der vorliegenden Erfindung kann es sich um Assembler-Anweisungen, ISA-Anweisungen (Instruction-Set-Architecture), Maschinenanweisungen, maschinenabhängige Anweisungen, Mikrocode, Firmware-Anweisungen, zustandssetzende Daten, Konfigurationsdaten für integrierte Schaltungen oder entweder Quellcode oder Objektcode handeln, die in einer beliebigen Kombination aus einer oder mehreren Programmiersprachen geschrieben werden, darunter objektorientierte Programmiersprachen wie Smalltalk, C++ o.ä. sowie prozedurale Programmiersprachen wie die Programmiersprache „C“ oder ähnliche Programmiersprachen. Die durch einen Computer lesbaren Programmanweisungen können vollständig auf dem Computer des Benutzers, teilweise auf dem Computer des Benutzers, als eigenständiges Software-Paket, 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 Fall kann der entfernt angeordnete Computer mit dem Computer des Benutzers durch eine beliebige Art Netzwerk verbunden sein, darunter ein lokales Netzwerk (LAN) oder ein Weitverkehrsnetz (WAN), oder die Verbindung kann mit einem externen Computer hergestellt werden (zum Beispiel über das Internet unter Verwendung eines Internet-Dienstanbieters). In einigen Ausführungsformen können elektronische Schaltungen, darunter zum Beispiel programmierbare Logikschaltungen, im Feld programmierbare Gatter-Anordnungen (FPGA, field programmable gate arrays) oder programmierbare Logikanordnungen (PLA, programmable logic arrays) die durch einen Computer lesbaren Programmanweisungen ausführen, indem sie Zustandsinformationen der durch einen Computer lesbaren Programmanweisungen nutzen, um die elektronischen Schaltungen zu personalisieren, um Aspekte der vorliegenden Erfindung durchzuführen.
  • Aspekte der vorliegenden Erfindung sind hierin unter Bezugnahme auf Ablaufpläne und/oder Blockschaltbilder bzw. Schaubilder von Verfahren, Vorrichtungen (Systemen) und Computerprogrammprodukten gemäß Ausführungsformen der Erfindung beschrieben. Es wird darauf hingewiesen, dass jeder Block der Ablaufpläne und/oder der Blockschaltbilder bzw. Schaubilder sowie Kombinationen von Blöcken in den Ablaufplänen und/oder den Blockschaltbildern bzw. Schaubildern mittels durch einen Computer lesbare Programmanweisungen ausgeführt werden können.
  • Diese durch einen Computer lesbaren Programmanweisungen können einem Prozessor eines Universalcomputers, eines Spezialcomputers oder einer anderen programmierbaren Datenverarbeitungsvorrichtung bereitgestellt werden, um eine Maschine zu erzeugen, so dass die über den Prozessor des Computers bzw. der anderen programmierbaren Datenverarbeitungsvorrichtung ausgeführten Anweisungen ein Mittel zur Umsetzung der in dem Block bzw. den Blöcken der Ablaufpläne und/oder der Blockschaltbilder bzw. Schaubilder festgelegten Funktionen/Schritte erzeugen. Diese durch einen Computer lesbaren Programmanweisungen können auch auf einem durch einen Computer lesbaren Speichermedium gespeichert sein, das einen Computer, eine programmierbare Datenverarbeitungsvorrichtung und/oder andere Einheiten so steuern kann, dass sie auf eine bestimmte Art funktionieren, so dass das durch einen Computer lesbare Speichermedium, auf dem Anweisungen gespeichert sind, ein Herstellungsprodukt aufweist, darunter Anweisungen, welche Aspekte der/des in dem Block bzw. den Blöcken des Ablaufplans und/oder der Blockschaltbilder bzw. Schaubilder angegebenen Funktion/Schritts umsetzen.
  • Die durch einen Computer lesbaren Programmanweisungen können auch auf einen Computer, eine andere programmierbare Datenverarbeitungsvorrichtung oder eine andere Einheit geladen werden, um das Ausführen einer Reihe von Prozessschritten auf dem Computer bzw. der anderen programmierbaren Vorrichtung oder anderen Einheit zu verursachen, um einen auf einem Computer ausgeführten Prozess zu erzeugen, so dass die auf dem Computer, einer anderen programmierbaren Vorrichtung oder einer anderen Einheit ausgeführten Anweisungen die in dem Block bzw. den Blöcken der Ablaufpläne und/oder der Blockschaltbilder bzw. Schaubilder festgelegten Funktionen/Schritte umsetzen.
  • Die Ablaufpläne und die Blockschaltbilder bzw. Schaubilder in den Figuren veranschaulichen die Architektur, die Funktionalität und den Betrieb möglicher Ausführungen von Systemen, Verfahren und Computerprogrammprodukten gemäß verschiedenen Ausführungsformen der vorliegenden Erfindung. In diesem Zusammenhang kann jeder Block in den Ablaufplänen oder Blockschaltbildern bzw. Schaubildern ein Modul, ein Segment oder einen Teil von Anweisungen darstellen, die eine oder mehrere ausführbare Anweisungen zur Ausführung der bestimmten logischen Funktion(en) aufweisen. In einigen alternativen Ausführungen können die in dem Block angegebenen Funktionen in einer anderen Reihenfolge als in den Figuren gezeigt stattfinden. Zwei nacheinander gezeigte Blöcke können zum Beispiel in Wirklichkeit im Wesentlichen gleichzeitig ausgeführt werden, oder die Blöcke können manchmal je nach entsprechender Funktionalität in umgekehrter Reihenfolge ausgeführt werden. Es ist ferner anzumerken, dass jeder Block der Blockschaltbilder bzw. Schaubilder und/oder der Ablaufpläne sowie Kombinationen aus Blöcken in den Blockschaltbildern bzw. Schaubildern und/oder den Ablaufplänen durch spezielle auf Hardware beruhende Systeme umgesetzt werden können, welche die festgelegten Funktionen oder Schritte durchführen, oder Kombinationen aus Spezial-Hardware und Computeranweisungen ausführen.

Claims (20)

  1. Verfahren für eine zweistufige Berechtigungsprüfung, wobei das Verfahren aufweist: Übertragen einer Benutzerkennung und eines Kennworts durch einen Client über eine Anwendungsprogrammierschnittstelle (API) an einen Server; Aufbauen einer auf Berechtigung geprüften Sitzung mit dem Server, wobei der Client über einen ersten Satz von Berechtigungen für Vorgänge verfügt, die der API zugehörig sind; Empfangen einer Anmeldeantwort und eines gemeinsam genutzten geheimen Schlüssels als Reaktion auf eine Überprüfung der Benutzerkennung und des Kennworts durch den Server; Erzeugen eines einmaligen Kenncodes (OTP) durch den Client auf Grundlage des gemeinsam genutzten geheimen Schlüssels; Senden des OTP über die API an den Server; und Gewähren eines zweiten Satzes von Berechtigungen für Vorgänge, die der API zugehörig sind, als Reaktion auf eine Überprüfung des OTP anhand des gemeinsam genutzten geheimen Schlüssels durch den Server.
  2. Verfahren nach Anspruch 1, das des Weiteren aufweist: Empfangen der Benutzerkennung und des Kennworts durch die Client-Einheit von einem Benutzer.
  3. Verfahren nach einem der vorhergehenden Ansprüche, wobei das Empfangen der Anmeldeantwort und des gemeinsam genutzten geheimen Schlüssels als Reaktion auf ein Feststellen erfolgt, dass ein Benutzer, dem die Benutzerkennung zugehörig ist, für ein Aufrüsten von einer Ein-Faktor-Berechtigungsprüfung auf eine Zwei-Faktor-Berechtigungsprüfung bestimmt ist.
  4. Verfahren nach einem der vorhergehenden Ansprüche, das des Weiteren aufweist: Speichern des gemeinsam genutzten geheimen Schlüssels durch den Client in Client-Vorgaben, die einem Benutzer zugehörig sind.
  5. Verfahren nach einem der vorhergehenden Ansprüche, wobei der Server dazu konfiguriert ist, den gemeinsam genutzten geheimen Schlüssel in einem Benutzerprofil zu speichern, das einem Benutzer zugehörig ist.
  6. Verfahren nach einem der vorhergehenden Ansprüche, wobei die API eine Representational-State-Transfer(REST)-API enthält.
  7. Verfahren nach einem der vorhergehenden Ansprüche, wobei der zweite Satz von Berechtigungen größer als der erste Satz von Berechtigungen ist.
  8. Verfahren nach einem der vorhergehenden Ansprüche, das des Weiteren aufweist: Übertragen der Benutzer-ID, des Kennworts und eines aktuellen OTP, der auf Grundlage des gemeinsam genutzten geheimen Schlüssels erzeugt worden ist, in einem nachfolgenden Anmeldevorgang an den Server.
  9. Computerprogrammprodukt für eine zweistufige Berechtigungsprüfung, wobei das Computerprogrammprodukt aufweist: ein durch einen Computer lesbares Speichermedium, das durch eine Verarbeitungsschaltung lesbar ist und das Befehle zur Ausführung durch die Verarbeitungsschaltung zum Durchführen eines Verfahrens nach einem der Ansprüche 1 bis 8 speichert.
  10. In einem durch einen Computer lesbaren Medium gespeichertes und in den internen Speicher eines Digitalcomputers ladbares Computerprogramm, das Abschnitte eines Software-Codes aufweist, um das Verfahren nach einem der Ansprüche 1 bis 8 durchzuführen, wenn das Programm auf einem Computer ausgeführt wird.
  11. Computersystem, das einen oder mehrere Prozessoren, einen oder mehrere durch einen Computer lesbare Speicher und eine oder mehrere durch einen Computer lesbare Speichereinheiten und Programmanweisungen aufweist, die auf zumindest einer der einen oder mehreren Speichereinheiten zum Ausführen durch zumindest einen des einen oder der mehreren Prozessoren über zumindest einen des einen oder der mehreren Speicher gespeichert sind, wobei die gespeicherten Programmanweisungen aufweisen: Programmanweisungen zum Übertragen einer Benutzerkennung und eines Kennworts durch einen Client über eine Anwendungsprogrammierschnittstelle (API) an einen Server; Programmanweisungen zum Aufbauen einer auf Berechtigung geprüften Sitzung mit dem Server, wobei der Client über einen ersten Satz von Berechtigungen für Vorgänge verfügt, die der API zugehörig sind; Programmanweisungen zum Empfangen einer Anmeldeantwort und eines gemeinsam genutzten geheimen Schlüssels als Reaktion auf eine Überprüfung der Benutzerkennung und des Kennworts durch den Server; Programmanweisungen zum Erzeugen eines einmaligen Kenncodes (OTP) durch den Client auf Grundlage des gemeinsam genutzten geheimen Schlüssels; Programmanweisungen zum Senden des OTP über die API an den Server; und Programmanweisungen zum Gewähren eines zweiten Satzes von Berechtigungen für Vorgänge, die der API zugehörig sind, als Reaktion auf eine Überprüfung des OTP anhand des gemeinsam genutzten geheimen Schlüssels durch den Server.
  12. Computersystem nach Anspruch 11, wobei die gespeicherten Programmanweisungen des Weiteren aufweisen: Programmanweisungen zum Empfangen der Benutzerkennung und des Kennworts durch die Client-Einheit von einem Benutzer.
  13. Computersystem nach einem der Ansprüche 11 oder 12, wobei das Empfangen der Anmeldeantwort und des gemeinsam genutzten geheimen Schlüssels als Reaktion auf ein Feststellen erfolgt, dass ein Benutzer, dem die Benutzerkennung zugehörig ist, für ein Aufrüsten von einer Ein-Faktor-Berechtigungsprüfung auf eine Zwei-Faktor-Berechtigungsprüfung bestimmt ist.
  14. Computersystem nach einem der Ansprüche 11 bis 13, wobei die gespeicherten Programmanweisungen des Weiteren aufweisen: Programmanweisungen zum Speichern des gemeinsam genutzten geheimen Schlüssels durch den Client in Client-Vorgaben, die einem Benutzer zugehörig sind.
  15. Computersystem nach einem der Ansprüche 11 bis 14, wobei der Server dazu konfiguriert ist, den gemeinsam genutzten geheimen Schlüssel in einem Benutzerprofil zu speichern, das einem Benutzer zugehörig ist.
  16. Computersystem nach einem der Ansprüche 11 bis 15, wobei die API eine Representational-State-Transfer(REST)-API enthält.
  17. Computersystem nach einem der Ansprüche 11 bis 13, wobei der zweite Satz von Berechtigungen größer als der erste Satz von Berechtigungen ist.
  18. Computersystem nach einem der Ansprüche 11 bis 17, wobei die gespeicherten Programmanweisungen des Weiteren aufweisen: Programmanweisungen zum Übertragen der Benutzer-ID, des Kennworts und eines aktuellen OTP, der auf Grundlage des gemeinsam genutzten geheimen Schlüssels erzeugt worden ist, in einem nachfolgenden Anmeldevorgang an den Server.
  19. Computersystem nach einem der Ansprüche 11 bis 18, wobei die gespeicherten Programmanweisungen in einer durch einen Computer lesbaren Speichereinheit in einem Datenverarbeitungssystem gespeichert sind und wobei die gespeicherten Programmanweisungen über ein Netzwerk von einem entfernt angeordneten Datenverarbeitungssystem übertragen werden.
  20. Computersystem nach einem der Ansprüche 11 bis 19, wobei die gespeicherten Programmanweisungen in einer durch einen Computer lesbaren Speichereinheit in einem Server-Datenverarbeitungssystem gespeichert sind und wobei die gespeicherten Programmanweisungen über ein Netzwerk auf ein entfernt angeordnetes Datenverarbeitungssystem zur Verwendung in einer durch einen Computer lesbaren Speichereinheit heruntergeladen werden, die dem entfernt angeordneten Datenverarbeitungssystem zugehörig ist.
DE112018004753.9T 2017-08-29 2018-08-24 Automatisches aufrüsten von einstufiger berechtigungsprüfung auf zweistufige berechtigungsprüfung über eine anwendungsprogrammierschnittstelle Pending DE112018004753T5 (de)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US15/689,073 US10586033B2 (en) 2017-08-29 2017-08-29 Automatic upgrade from one step authentication to two step authentication via application programming interface
US15/689,073 2017-08-29
US15/813,712 2017-11-15
US15/813,712 US10592656B2 (en) 2017-08-29 2017-11-15 Automatic upgrade from one step authentication to two step authentication via application programming interface
PCT/IB2018/056437 WO2019043539A1 (en) 2017-08-29 2018-08-24 AUTOMATICALLY UPGRADING ONE-STEP AUTHENTICATION TO TWO-STEP AUTHENTICATION VIA AN APPLICATION PROGRAMMING INTERFACE

Publications (1)

Publication Number Publication Date
DE112018004753T5 true DE112018004753T5 (de) 2020-06-10

Family

ID=65435333

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112018004753.9T Pending DE112018004753T5 (de) 2017-08-29 2018-08-24 Automatisches aufrüsten von einstufiger berechtigungsprüfung auf zweistufige berechtigungsprüfung über eine anwendungsprogrammierschnittstelle

Country Status (6)

Country Link
US (3) US10586033B2 (de)
JP (1) JP7100939B2 (de)
CN (1) CN111034146B (de)
DE (1) DE112018004753T5 (de)
GB (1) GB2579990B (de)
WO (1) WO2019043539A1 (de)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11283793B2 (en) * 2018-10-18 2022-03-22 Oracle International Corporation Securing user sessions
US10389708B1 (en) * 2019-01-03 2019-08-20 Capital One Services, Llc Secure authentication of a user associated with communication with a service representative
US10983767B2 (en) * 2019-01-04 2021-04-20 T-Mobile Usa, Inc. Microservice-based software development
US11068259B2 (en) 2019-01-04 2021-07-20 T-Mobile Usa, Inc. Microservice-based dynamic content rendering
US10652238B1 (en) * 2019-06-10 2020-05-12 Capital One Services, Llc Systems and methods for automatically performing secondary authentication of primary authentication credentials
WO2020256366A1 (en) * 2019-06-17 2020-12-24 Samsung Electronics Co., Ltd. Method and server for providing user consent to edge application
JP7338386B2 (ja) * 2019-10-04 2023-09-05 富士フイルムビジネスイノベーション株式会社 情報処理装置、情報処理システム及びプログラム
US12093371B2 (en) 2020-05-28 2024-09-17 Red Hat, Inc. Data distribution using a trusted execution environment in an untrusted device
US11971980B2 (en) 2020-05-28 2024-04-30 Red Hat, Inc. Using trusted execution environments to perform a communal operation for mutually-untrusted devices
US11947659B2 (en) 2020-05-28 2024-04-02 Red Hat, Inc. Data distribution across multiple devices using a trusted execution environment in a mobile device
TWI749774B (zh) * 2020-09-17 2021-12-11 瑞昱半導體股份有限公司 驗證系統及用於驗證系統之驗證方法
US11848924B2 (en) * 2020-10-12 2023-12-19 Red Hat, Inc. Multi-factor system-to-system authentication using secure execution environments
JP7543150B2 (ja) 2021-01-22 2024-09-02 キヤノン株式会社 多要素認証機能を備えた画像形成装置
US11818121B2 (en) 2021-07-15 2023-11-14 Micro Focus Llc Low cost defense against denial-of-service attacks
US20240331858A1 (en) * 2023-04-03 2024-10-03 Sayed Emal Wahezi Neuromodulation waveform watermarking and prescribing

Family Cites Families (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7685631B1 (en) * 2003-02-05 2010-03-23 Microsoft Corporation Authentication of a server by a client to prevent fraudulent user interfaces
US7571489B2 (en) * 2004-10-20 2009-08-04 International Business Machines Corporation One time passcode system
US7748031B2 (en) * 2005-07-08 2010-06-29 Sandisk Corporation Mass storage device with automated credentials loading
US9258124B2 (en) * 2006-04-21 2016-02-09 Symantec Corporation Time and event based one time password
US8245031B2 (en) * 2006-07-07 2012-08-14 Sandisk Technologies Inc. Content control method using certificate revocation lists
US20100138652A1 (en) * 2006-07-07 2010-06-03 Rotem Sela Content control method using certificate revocation lists
US8613103B2 (en) * 2006-07-07 2013-12-17 Sandisk Technologies Inc. Content control method using versatile control structure
US8006300B2 (en) * 2006-10-24 2011-08-23 Authernative, Inc. Two-channel challenge-response authentication method in random partial shared secret recognition system
US8543829B2 (en) * 2007-01-05 2013-09-24 Ebay Inc. Token device re-synchronization through a network solution
GB2458470A (en) * 2008-03-17 2009-09-23 Vodafone Plc Mobile terminal authorisation arrangements
US20090265764A1 (en) * 2008-04-21 2009-10-22 Verizon Business Network Services Inc. Aggregation and use of information relating to a users context
US8312519B1 (en) * 2010-09-30 2012-11-13 Daniel V Bailey Agile OTP generation
US9141410B2 (en) * 2011-03-08 2015-09-22 Rackspace Us, Inc. Pluggable allocation in a cloud computing system
US8914521B2 (en) * 2011-09-27 2014-12-16 Oracle International Corporation System and method for providing active-passive routing in a traffic director environment
US9742873B2 (en) 2012-11-29 2017-08-22 International Business Machines Corporation Adjustment to managed-infrastructure-as-a-service cloud standard
US9098687B2 (en) * 2013-05-03 2015-08-04 Citrix Systems, Inc. User and device authentication in enterprise systems
US9467853B2 (en) * 2013-10-17 2016-10-11 Lg Electronics Inc. Server for managing home appliance and system including the same
US9754097B2 (en) * 2014-02-21 2017-09-05 Liveensure, Inc. Method for peer to peer mobile context authentication
CN104168329A (zh) 2014-08-28 2014-11-26 尚春明 云计算及互联网中的用户二次认证方法、装置和系统
CN104468119B (zh) 2014-11-21 2017-06-27 上海瀚之友信息技术服务有限公司 一种一次性密码认证系统及认证方法
EP3329650B1 (de) * 2015-07-27 2022-09-07 Amazon Technologies, Inc. Bereitstellung von multifaktorauthentifizierungsdaten über vorrichtungsbenachrichtigungen
US10324773B2 (en) 2015-09-17 2019-06-18 Salesforce.Com, Inc. Processing events generated by internet of things (IoT)
CN105357186B (zh) 2015-10-10 2018-10-19 江苏通付盾科技有限公司 一种基于带外验证和增强otp机制的二次认证方法
CN105516980B (zh) * 2015-12-17 2018-11-13 河南大学 一种基于Restful架构的无线传感器网络令牌认证方法
US10574692B2 (en) * 2016-05-30 2020-02-25 Christopher Nathan Tyrwhitt Drake Mutual authentication security system with detection and mitigation of active man-in-the-middle browser attacks, phishing, and malware and other security improvements
US10455025B2 (en) * 2016-08-02 2019-10-22 Micro Focus Software Inc. Multi-factor authentication
CN106304074B (zh) 2016-08-31 2019-08-16 尹子栋 面向移动用户的身份验证方法和系统
US10237070B2 (en) * 2016-12-31 2019-03-19 Nok Nok Labs, Inc. System and method for sharing keys across authenticators

Also Published As

Publication number Publication date
GB2579990B (en) 2021-05-05
US20190065731A1 (en) 2019-02-28
US10586033B2 (en) 2020-03-10
JP2020531990A (ja) 2020-11-05
WO2019043539A1 (en) 2019-03-07
GB202003933D0 (en) 2020-05-06
US20200151318A1 (en) 2020-05-14
CN111034146A (zh) 2020-04-17
US20190065730A1 (en) 2019-02-28
GB2579990A (en) 2020-07-08
US10984090B2 (en) 2021-04-20
US10592656B2 (en) 2020-03-17
CN111034146B (zh) 2022-01-07
JP7100939B2 (ja) 2022-07-14

Similar Documents

Publication Publication Date Title
DE112018004753T5 (de) Automatisches aufrüsten von einstufiger berechtigungsprüfung auf zweistufige berechtigungsprüfung über eine anwendungsprogrammierschnittstelle
DE102016222034A1 (de) Dynamische Kennworterzeugung
DE112020000538T5 (de) Feinkörnige zugriffskontrolle auf token-grundlage
DE102015122518A1 (de) Authentifizierung von Datenkommunikationen
DE112015005024T5 (de) Öffnen lokaler Anwendungen von Browsern
DE112010004135T5 (de) Sicherung Asynchroner Client-Server-Transaktionen
DE112018005203T5 (de) Authentifizierung unter Verwendung von delegierten Identitäten
DE112010004930T5 (de) Sicherer kerberisierter Zugriff auf ein verschlüsseltes Dateisystem
DE112015002927B4 (de) Generierung und Verwaltung geheimer Chiffrierschlüssel auf Kennwortgrundlage
DE112021005478T5 (de) Verfahren zum schutz eines edge-gerät-vertrauenswerts
DE112013002539B4 (de) Validierung mobiler Einheiten
DE112017004160T5 (de) Schützen eines Webservers vor einer nicht autorisierten Client-Anwendung
DE102016105062A1 (de) Nähengestützte Berechtigungsprüfung für einheitenübergreifend verteilte Daten
DE112012002780T5 (de) Verfahren und Vorrichtung zur Berücksichtigung des Aufwands von Anwendungen basierend auf Kundenhardware
DE112020002343T5 (de) Verteilung von Sicherheitsberechtigungsnachweisen
DE112017000633T5 (de) Sichere archivierung und wiederherstellung von multifaktor-authentifizierungsschablonen
DE112022004230T5 (de) Verwenden von einheitengebundenen berechtigungsnachweisen für eine verbesserte sicherheit der authentifizierung in nativen anwendungen
DE112022000340T5 (de) Attributgestützte verschlüsselungsschlüssel als schlüsselmaterial zum authentifizieren und berechtigen von benutzern mit schlüssel-hash-nachrichtenauthentifizierungscode
EP3198826B1 (de) Authentisierungs-stick
DE102021123288A1 (de) Regelbasiertes filtern zum sichern von kennwortanmeldungen
DE102018112881A1 (de) Datenschutzgestützte biometrische, authentifizierte Zugriffsanforderung
DE202020005751U1 (de) Verwalten von Benutzeridentitäten in einem verwalteten Multi-Tenant-Dienst
DE112022000963T5 (de) Verbindungsbeständige mehrfaktorauthentifizierung
DE112021004115B4 (de) Sicherheitssystem für eine Segmentierung von Computerdatei-Metadaten
DE102021132225A1 (de) Verwaltung von gemeinsam genutzten authentifizierungsnachweisen

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R079 Amendment of ipc main class

Free format text: PREVIOUS MAIN CLASS: H04L0029060000

Ipc: G06F0021330000