-
HINTERGRUND
-
Technisches Gebiet
-
Die vorliegende Offenbarung betrifft im Allgemeinen eine elektronische Datenübertragung und insbesondere ein Schützen von Daten, die über eine elektronische Datenübertragung übertragen werden.
-
Beschreibung des einschlägigen Stands der Technik
-
In den letzten Jahren haben die Sicherheitsprobleme in Bezug auf digitale Daten zugenommen. Zu einigen der betroffenen Branchen gehören Bankenwesen, Gesundheitswesen, Regierungsbehörden, Bildungseinrichtungen, soziale Medien usw. Viele herkömmliche Systeme verlassen sich auf statische Passwörter zum Identifizieren der Identität eines Benutzers, die manchmal problemlos erraten oder mittels Social-Engineering-Taktiken bestimmt werden können.
-
Eine verbesserte Sicherheitsstrategie beruht auf einer Zwei-Faktor-Authentifizierung. Zum Beispiel muss ein Benutzer für eine Website den Benutzernamen oder eine Mobiltelefonnummer eingeben. Wenn der Benutzername oder die Mobiltelefonnummer registriert ist, sendet die Website eine Textnachricht wie beispielsweise eine Kurznachrichtendienst- (SMS (Short Message Service)) Textnachricht an eine Benutzereinheit des Benutzers mit einem Passwort, wobei der Benutzer aufgefordert wird, dieses manuell für die Website bereitzustellen. Die Website vergleicht dann das Passwort, das sie an die Benutzereinheit gesendet hat, mit dem vom Benutzer eingegebenen Passwort. Stimmen sie überein, wird der Benutzer als authentifiziert betrachtet und wird angemeldet.
-
Vorhandene Systeme, die mit SMS arbeiten, haben mehrere Nachteile. In letzter Zeit wurde festgestellt, dass trotz einer Verwendung einer Zwei-Faktor-Authentifizierung zur Erhöhung der Sicherheit die meisten Benutzereinheiten nicht ausreichend gegen Hackerangriffe und Malware geschützt sind. Zum Beispiel kann ein Bedrohungsakteur, Hacker oder Angreifer, auf die hierin als böswillige Partei verwiesen wird, die SMS-Datenübertragung abfangen oder abhören, ohne dass der betroffene Benutzer dies bemerkt. Anders ausgedrückt, die SMS vertraut auf eine aktive Transaktion zwischen einem Server und einer Benutzereinheit, die abgefangen werden kann und einen Benutzer damit einem Sicherheitsrisiko aussetzt. Somit kann genau die Nachricht, die einen Benutzer schützen soll, die Quelle einer Schwachstelle sein. In Bezug auf genau diese und andere Überlegungen wurde die vorliegende Offenbarung geschrieben.
-
Daher besteht im Stand der Technik ein Bedarf, sich des vorgenannten Problems anzunehmen.
-
KURZDARSTELLUNG DER ERFINDUNG
-
Von einem ersten Aspekt aus betrachtet stellt die vorliegende Erfindung eine Datenverarbeitungseinheit bereit, aufweisend: einen Prozessor; eine Netzwerkschnittstelle, die mit dem Prozessor verbunden ist, um eine Datenübertragung über ein Netzwerk zu ermöglichen; eine Speichereinheit, die mit dem Prozessor verbunden ist; eine Software eines Sicherheits-Agents, die in der Speichereinheit gespeichert ist, wobei eine Ausführung der Software durch den Prozessor die Datenverarbeitungseinheit zum Ausführen von Handlungen konfiguriert, aufweisend: ein Empfangen einer Anforderung für eine Ressource von einer Benutzereinheit; ein Empfangen einer vordefinierten Zahl (s) von der Benutzereinheit; ein Erstellen einer ersten Zahl (p); ein Senden der ersten Zahl (p) an die Benutzereinheit; ein Erstellen eines Anforderungscodes (c); ein Bestimmen eines ersten diskreten Logarithmus auf Grundlage des Anforderungscodes (c) und der ersten Zahl (p); ein Senden des ersten diskreten Logarithmus an die Benutzereinheit; ein Berechnen eines ersten Zugangscodes (R1) über einen zweiten diskreten Logarithmus auf Grundlage des ersten diskreten Logarithmus, der vordefinierten Zahl (s) und der ersten Zahl (p); ein Empfangen eines zweiten Zugangscodes (R2) auf Grundlage des zweiten diskreten Logarithmus von der Benutzereinheit; ein Vergleichen des ersten Zugangscodes (R1) mit dem zweiten Zugangscode (R2); und nach einem Bestimmen, dass der erste Zugangscode (R) mit dem zweiten Zugangscode (R2) identisch ist, ein Zulassen, dass die Benutzereinheit Zugang zu der Ressource erhält.
-
Von einem weiteren Aspekt aus betrachtet stellt die vorliegende Erfindung eine Datenverarbeitungseinheit bereit, aufweisend: einen Prozessor; eine Netzwerkschnittstelle, die mit dem Prozessor verbunden ist, um eine Datenübertragung über ein Netzwerk zu ermöglichen; eine Speichereinheit, die mit dem Prozessor verbunden ist; eine Sicherheitsanwendung, die in der Speichereinheit gespeichert ist, wobei eine Ausführung der Software durch den Prozessor die Datenverarbeitungseinheit zum Ausführen von Handlungen konfiguriert, aufweisend: ein Senden einer Anforderung für eine Ressource von einer Datenverarbeitungseinheit an einen Server; ein Senden einer vordefinierten Zahl (s) an den Server; ein Empfangen einer ersten Zahl (p) von dem Server; ein Empfangen eines ersten diskreten Logarithmus auf Grundlage eines Anforderungscodes (c) und der ersten Zahl (p) und einer zweiten Zahl (g) von dem Server; ein Berechnen eines zweiten Zugangscodes (R2) auf Grundlage eines zweiten diskreten Logarithmus auf Grundlage des ersten diskreten Logarithmus, der vordefinierten Zahl (s) und der ersten Zahl (p); ein Senden des zweiten Zugangscodes (R2) an den Server für einen Vergleich mit einem ersten Zugangscode (R1); und ein Erhalten von Zugriff auf die Ressource, wenn der zweite Zugangscode (R2) mit dem ersten Zugangscode (R1) übereinstimmt.
-
Von einem weiteren Aspekt aus betrachtet stellt die vorliegende Erfindung ein Verfahren zum Schützen von Daten bereit, wobei das Verfahren aufweist: ein Empfangen einer Anforderung für eine Ressource von einer Benutzereinheit; ein Empfangen einer vordefinierten Zahl (s) von der Benutzereinheit; ein Erstellen einer ersten Zahl (p); ein Senden der ersten Zahl (p) an die Benutzereinheit; ein Erstellen eines Anforderungscodes (c); ein Bestimmen eines ersten diskreten Logarithmus auf Grundlage des Anforderungscodes (c) und der ersten Zahl (p); ein Senden des ersten diskreten Logarithmus an die Benutzereinheit; ein Berechnen eines ersten Zugangscodes (R1) über einen zweiten diskreten Logarithmus auf Grundlage des ersten diskreten Logarithmus, der vordefinierten Zahl (s) und der ersten Zahl (p); ein Empfangen eines zweiten Zugangscodes (R2) auf Grundlage des zweiten diskreten Logarithmus von der Benutzereinheit; ein Vergleichen des ersten Zugangscodes (R1) mit dem zweiten Zugangscode (R2); und wenn bestimmt worden ist, dass der erste Zugangscode (R1) mit dem zweiten Zugangscode (R2) identisch ist, ein Zulassen, dass die Benutzereinheit Zugang zu der Ressource erhält.
-
Von einem weiteren Aspekt aus betrachtet stellt die vorliegende Erfindung ein Computerprogrammprodukt zum Schützen von Daten bereit, wobei das Computerprogrammprodukt ein durch einen Computer lesbares Speichermedium aufweist, das von einer Verarbeitungsschaltung lesbar ist und Anweisungen zur Ausführung durch die Verarbeitungsschaltung speichert, um ein Verfahren zum Ausführen der Schritte der Erfindung auszuführen.
-
Von einem weiteren Aspekt aus betrachtet stellt die vorliegende Erfindung ein Computerprogramm bereit, das auf einem durch einen Computer lesbaren Medium gespeichert ist und in den internen Arbeitsspeicher eines digitalen Computers ladbar ist, wobei es Abschnitte von Softwarecode zum Ausführen der Schritte der Erfindung aufweist, wenn das Programm auf einem Computer ausgeführt wird.
-
Gemäß verschiedenen Ausführungsformen wird eine Datenverarbeitungseinheit, ein nicht flüchtiges, durch einen Computer lesbares Speichermedium und ein Verfahren für ein Authentifizieren eines Benutzers bereitgestellt. Eine Datenverarbeitungseinheit empfängt eine Anforderung für eine Ressource von einer Benutzereinheit. Eine vordefinierte Zahl (s) wird von der Benutzereinheit empfangen. Eine erste Zahl (p) und eine zweite Zahl (g) werden erstellt. Die erste Zahl (p) wird an die Benutzereinheit gesendet. Ein Anforderungscode (c) wird durch die Datenverarbeitungseinheit erstellt. Ein erster diskreter Logarithmus wird auf Grundlage des Anforderungscodes (c) und der ersten Zahl (p) bestimmt. Der erste diskrete Logarithmus wird an die Benutzereinheit gesendet. Ein erster Zugangscode (R1) wird über einen zweiten diskreten Logarithmus auf Grundlage des ersten diskreten Logarithmus, der vordefinierten Zahl (s) und der ersten Zahl (p) berechnet. Ein zweiter Zugangscode (R2), der auf dem zweiten diskreten Logarithmus beruht, wird von der Benutzereinheit empfangen. Der erste Zugangscode (R1) wird mit dem zweiten Zugangscode (R2) verglichen. Wenn bestimmt worden ist, dass der erste Zugangscode (R1) mit dem zweiten Zugangscode (R2) identisch ist, wird der Benutzereinheit der Zugang zu einer Ressource gestattet, die der Datenverarbeitungseinheit zugehörig ist. Aufgrund dieser Architektur wird der Zugangscode (R1) geschützt, auch wenn eine Datenübertragung zwischen dem Server und der Benutzereinheit von einer böswilligen dritten Partei abgefangen werden kann.
-
In einer Ausführungsform ist die erste Zahl (p) eine Primzahl. In einer Ausführungsform ist die erste Zahl (p) größer als die zweite Zahl (g).
-
In einer Ausführungsform erfolgt ein Senden der ersten Zahl (p) an die Benutzereinheit über einen Kanal eines öffentlichen Fernsprechwählnetzes (PSTN (Public Switched Telephone Network)).
-
In einer Ausführungsform erfolgt der Empfang der vordefinierten Zahl (s) durch die Datenverarbeitungseinheit über einen Kanal, der sich von demjenigen zum Senden der ersten Zahl (p) an die Benutzereinheit unterscheidet.
-
In einer Ausführungsform beruht der erste diskrete Logarithmus auf (gc mod p), und der zweite diskrete Logarithmus beruht auf ((gc mod p)s mod p).
-
Gemäß verschiedenen Ausführungsformen wird eine Datenverarbeitungseinheit, ein nicht flüchtiges, durch einen Computer lesbares Speichermedium und ein Verfahren für ein Authentifizieren eines Benutzers bereitgestellt. Eine Anforderung einer Ressource wird von der Datenverarbeitungseinheit an einen Server gesendet. Eine vordefinierte Zahl (s) wird an den Server gesendet. Eine erste Zahl (p) wird von dem Server empfangen. Ein erster diskreter Logarithmus auf Grundlage eines Anforderungscodes (c) und der ersten Zahl (p) und einer zweiten Zahl (g) wird von dem Server empfangen. Ein zweiter Zugangscode (R2) wird über einen zweiten diskreten Logarithmus auf Grundlage des ersten diskreten Logarithmus, der vordefinierten Zahl (s) und der ersten Zahl (p) berechnet. Der zweite Zugangscode (R2) wird an den Server für einen Vergleich mit einem ersten Zugangscode (R1) gesendet. Der Zugang zu einer Ressource, die dem Server zugehörig ist, wird erhalten, wenn der zweite Zugangscode (R2) mit dem ersten Zugangscode (R1) übereinstimmt. Aufgrund dieser Architektur wird der Zugangscode R1 geschützt, auch wenn eine Datenübertragung zwischen dem Server und der Benutzereinheit von einer böswilligen dritten Partei abgefangen werden kann.
-
In einer Ausführungsform ist die vordefinierte Zahl (s) eine Identifizierungs- (ID) Nummer der Benutzereinheit.
-
In einer Ausführungsform wird die vordefinierte Zahl (s) über einen Hypertext-Transfer-Protocol-Secure- (HTTPS) Kanal gesendet, wobei die erste Zahl (p) eine Primzahl ist und die erste Zahl (p) größer als die zweite Zahl (g) ist.
-
In einer Ausführungsform erfolgt das Senden der vordefinierten Zahl (s) durch die Datenverarbeitungseinheit über einen Kanal, der sich von demjenigen zum Empfangen der ersten Zahl (p) von dem Server unterscheidet.
-
In einer Ausführungsform beruht der erste diskrete Logarithmus auf (gc mod p). Der zweite diskrete Logarithmus beruht auf ((gc mod p)s mod p).
-
Figurenliste
-
Die Zeichnungen stellen veranschaulichende Ausführungsformen dar. Sie veranschaulichen nicht alle Ausführungsformen. Weitere Ausführungsformen können zusätzlich oder stattdessen verwendet werden. Details, die offenkundig erscheinen oder unnötig sind, können weggelassen worden sein, um Platz zu sparen oder aus Gründen einer effizienteren Veranschaulichung. Einige Ausführungsformen können mit zusätzlichen Komponenten oder Schritten und/oder ohne alle der veranschaulichten Komponenten oder Schritte ausgeübt werden. Wenn in verschiedenen Zeichnungen dieselben Referenzzeichen erscheinen, wird damit auf dieselben oder ähnliche Komponenten oder Schritte verwiesen.
- 1 veranschaulicht eine beispielhafte Architektur 100 zum Bereitstellen einer sicheren Multifaktor-Authentifizi eru ng.
- 2 veranschaulicht ein Blockschaubild, das verschiedene Komponenten einer veranschaulichenden Benutzereinheit auf einer hohen Ebene zeigt.
- 3 ist ein Beispiel eines Anrufverlaufs zwischen einem Sicherheits-Agent eines Sicherheitsservers und einer Benutzereinheit im Kontext eines Modus einer Anforderungsreaktion.
- 4 ist ein Beispiel eines Anrufverlaufs zwischen einem Sicherheits-Agent eines Sicherheitsservers und einer Benutzereinheit im Kontext eines interaktiven Modus.
- 5 stellt eine Veranschaulichung eines funktionsbezogenen Blockschaubilds einer Computer-Hardwareplattform bereit.
-
AUSFÜHRLICHE BESCHREIBUNG
-
In der folgenden ausführlichen Beschreibung werden zahlreiche spezifische Details mithilfe von Beispielen dargelegt, um für ein umfassendes Verständnis der relevanten Lehren zu sorgen. Es sollte jedoch offensichtlich sein, dass die vorliegenden Lehren ohne derartige Details ausgeübt werden können. In anderen Fällen wurden wohlbekannte Verfahren Prozeduren, Komponenten und/oder Schaltungen auf einer relativ hohen Ebene ohne Details beschrieben, um eine unnötige Verschleierung von Aspekten der vorliegenden Lehren zu vermeiden.
-
Die vorliegende Offenbarung betrifft ein Schützen von Daten, die über eine elektronische Datenübertragung übertragen werden. Die Daten werden durch eine Multifaktor-Authentifizierung geschützt, die Schwachstellen der Daten während des Authentifizierungsprozesses reduziert, selbst wenn die elektronische Datenübertragung während der Authentifizierung durch eine böswillige Partei abgefangen wird. Sowohl der Server, der die zu schützenden Daten speichert, als auch die Benutzereinheit, die die geschützten Daten anfordert, können einen selben Zugangscode bestimmen, obwohl Nachrichten, die während des Authentifizierungsprozesses durch eine digitale Datenübertragung übertragen werden, die Sicherheit der zu schützenden Daten nicht beeinträchtigen. Deshalb sendet der Server, der die Authentifizierung ausführt, keinen Zugangscode an die Benutzereinheit des anfordernden Benutzers. Stattdessen wird mindestens ein Teil der Parameter im Zusammenhang mit der Authentifizierung, die dem Server bekannt sind, durch den Server geheim gehalten, und mindestens ein Teil der Parameter im Zusammenhang mit der Authentifizierung, die der Benutzereinheit bekannt sind, wird benutzerseitig geheim gehalten. Aufgrund der hierin erörterten Konzepte wird der Zugangscode geschützt, selbst wenn eine Datenübertragung zwischen dem Server und der Benutzereinheit von einer böswilligen dritten Partei abgefangen wird. Im Folgenden wird ausführlich auf die Beispiele Bezug genommen, die in den begleitenden Zeichnungen veranschaulicht sind und im Folgenden erörtert werden.
-
Beispiel-Architektur
-
1 veranschaulicht eine beispielhafte Architektur 100 zum Bereitstellen einer sicheren Multifaktor-Authentifizierung. Die Architektur 100 enthält ein Netzwerk 106, das verschiedenen Benutzereinheiten 102(1) bis 102(n) ermöglicht, miteinander Daten auszutauschen, sowie alle anderen Ressourcen, die mit dem Netzwerk 106 verbunden sein können, darunter Banken, Regierungsorganisationen, Portale im Gesundheitswesen, Bildungseinrichtungen, Portale von sozialen Medien usw., die zum Speichern von Informationen verwendet werden können, die ein Benutzer zu schützen beabsichtigt. Diese Einrichtungen und Portale werden hierin durch ein privates Netzwerk 108 mit einem Sicherheitsserver 120 dargestellt.
-
Das Netzwerk 106 kann ohne jede Einschränkung ein lokales Netzwerk („LAN“), ein virtuelles privates Netzwerk („VPN“), ein Mobilfunknetzwerk, ein öffentliches Fernsprechwählnetz (PSTN), das Internet oder eine Kombination davon sein. Zum Beispiel kann das Netzwerk 106 ein Mobilfunknetzwerk enthalten, das in Datenaustausch mit einem privaten Netzwerk verbunden ist, das verschiedene ergänzende Dienste bereitstellt, wie zum Beispiel eine Datenübertragung mit verschiedenen Application Stores, Bibliotheken und dem Internet. Um die vorliegende Erörterung zu vereinfachen, wird das Netzwerk 106 nur als Beispiel und keinesfalls einschränkend als ein Mobilfunknetzwerk beschrieben, das von einem Betreiber oder einem Dienstanbieter betrieben werden kann, um einen breiten Bereich von mobilen Datenübertragungsdiensten und ergänzenden Diensten oder Funktionen für Abonnentenkunden und zugehörige Benutzer von mobilen Einheiten bereitzustellen.
-
Das Netzwerk 106 ermöglicht es einem oder mehreren Benutzern 101(1) bis 101(n) mit einem oder mehreren privaten Netzwerken 108 Daten auszutauschen, um jeweils über die Benutzereinheiten (UD) 102(1) bis 102(n) Informationen sicher von dem privaten Netzwerk abzurufen oder Informationen im privaten Netzwerk zu speichern. Wie vorher erwähnt, können diese privaten Netzwerke 108 die Netzwerke von verschiedenen Einrichtungen und Portalen darstellen, die ein Benutzer abonniert haben kann. Das private Netzwerk 108 enthält einen Sicherheitsserver 120, auf dem eine Software-Anwendung ausgeführt wird, dargestellt durch einen Sicherheits-Agent 103. In einer Ausführungsform enthält das private Netzwerk eine Profildatenbank 110, die Abonnements, Zahlungsstatus-Informationen, Passwortinformationen, Identifizierungsinformationen usw. von Benutzern enthalten kann, die autorisiert sind, das private Netzwerk 108 und dessen jeweilige geschützte Daten 113 zu verwenden. In einer Ausführungsform kann der Sicherheits-Agent 103 vordefinierte Zahlen 111A, wie zum Beispiel eine Identifizierungs- (ID) Nummer der Benutzereinheit in der Profildatenbank 110 speichern. Anschließend können die gespeicherten Informationen 111 B während eines Authentifizierungsprozesses aus der Profildatenbank 110 abgerufen werden.
-
Zum Zweck einer späteren Erörterung sind in der Zeichnung mehrere Benutzereinheiten zu sehen, die einige Beispiele für die Einheiten darstellen, die zum Initiieren einer Datenübertragung mit dem privaten Netzwerk 108 verwendet werden können. Gegenwärtig liegen Benutzereinheiten typischerweise in Form von tragbaren Handapparaten, Smartphones, Tablet-Computern, PDAs, Virtual-Reality- (VR) Einheiten, Augmented-Reality- (AR) Einheiten und Smart-Uhren vor, obwohl sie in anderen Bauformen umgesetzt werden können, einschließlich elektronischen Verbraucher- und Geschäftseinheiten. Eine Benutzereinheit (z.B. 102(1)) kann zum Interagieren mit dem privaten Netzwerk 108 über das Netzwerk 106 verwendet werden, um eine oder mehrere Ressourcen, die durch das private Netzwerk 108 bereitgestellt werden, zu empfangen, einschließlich geschützte Daten 113 abzurufen und in einem Repository 112 zu speichern, das dem Sicherheitsserver 120 zugehörig ist.
-
In einigen Szenarios kann eine böswillige Partei, in 1 durch einen Benutzer 101 (n) und deren entsprechende Benutzereinheit 102(n) dargestellt, versuchen, die Datenübertragung zwischen einem autorisierten Benutzer (z.B. 101(1) oder 101(2)) über irreführende Praktiken abzufangen, die ein einfaches Abhören der Datenübertragung auf einer Benutzereinheit 102(2) eines autorisierten Benutzers 101(2), ein elektronisches Abfangen der Datenübertragung über das Netzwerk 106 usw. sein können. Die Architektur 100 ist so konfiguriert, dass die Sicherheit der Daten 113, die geschützt werden sollen, trotz des Abfangens durch eine böswillige Partei 102(n) bewahrt wird.
-
Zu diesem Zweck ist der Sicherheits-Agent 103 als ein Gateway zwischen den geschützten Daten 113 in dem Daten-Repository 112 und einem oder mehreren Benutzern 101(1) bis 101(n) betreibbar. Zum Beispiel ist der Sicherheits-Agent 103 konfiguriert, um von Benutzern über deren jeweilige Benutzereinheiten Anforderungen für Daten zu empfangen, die in dem privaten Netzwerk 108 (z.B. in einem Daten-Repository 1112) gespeichert sind (oder dort gespeichert werden sollen). Der Sicherheits-Agent 103 ist auch konfiguriert, um zu bestimmen, ob der Benutzer autorisiert ist, über Authentifizierungsprozesse, die im Folgenden ausführlicher erörtert werden, mit dem privaten Netzwerk 108 Daten auszutauschen. In verschiedenen Ausführungsformen kann der Authentifizierungsprozess, der durch den Sicherheits-Agent ausgeführt wird, ein Senden von Zugangscodes und ein Empfangen von Zugangscodes an eine und von einer Benutzereinheit (z.B. 102(1)) enthalten. Zum Beispiel kann der Sicherheits-Agent 103 eine vordefinierte Zahl von der Benutzereinheit 102(1) empfangen, die später für eine Datenverschleierung auf Grundlage einer modularen Exponentialfunktion verwendet werden kann, auf die hierin als ein diskreter Logarithmus verwiesen wird.
-
Diskrete Logarithmen sind Logarithmen im Kontext von multiplikativen Gruppen, die zyklisch sind. Wenn zum Beispiel G eine multiplikative zyklische Gruppe ist und g ein Generator von G ist, kann ab der Definition von zyklischen Gruppen jedes Element h in G als gx für irgendein x geschrieben werden. Der diskrete Logarithmus zur Basis g von h in der Gruppe G wird als x definiert. Während diskrete Logarithmen auf Grundlage von bekannten Parametern berechnet werden können, wird der bzw. werden die Root-Parameter verschleiert, wodurch in diskreten Logarithmen inhärente Parameter zur rechnerischen Herausforderung beim Entschlüsseln werden.
-
In einigen Ausführungsformen kann ein Sicherheitsalarm (d.h. Alert-Benachrichtigung) ausgelöst und an einen oder mehrere entsprechende Empfänger-Accounts gesendet werden, wenn bestimmt worden ist, dass ein Benutzer, der versucht, auf Informationen des privaten Netzwerks 108 zuzugreifen, nicht autorisiert ist. Ein entsprechender Empfänger kann der Account-Inhaber (d.h. Benutzer) der geschützten Daten 113, ein IT-Administrator des privaten Netzwerks 108, ein Sicherheits-Agent des privaten Netzwerks 108 usw. sein. Die Alert-Benachrichtigung kann auf verschiedene Weise gesendet werden, zum Beispiel als allgemeiner Kurzcode (CSC (Common Short Code)), unter Verwendung eines Kurznachrichtendienstes (SMS), eines Multimedia-Nachrichtendienstes (MMS (Multimedia Message Service)), von eMail, Telefon, sozialen Medien usw.
-
Zwar werden der Sicherheitsserver 120, die Profildatenbank 110 und das Daten-Repository 112 beispielhaft auf verschiedenen Plattformen veranschaulicht, doch sollte klar sein, dass der Sicherheitsserver 120, die Profildatenbank 110 und das Daten-Repository 112 in unterschiedlichen Ausführungsformen in verschiedenen Kombinationen kombiniert werden können. In anderen Ausführungsformen können diese Datenverarbeitungs-Plattformen durch virtuelle Datenverarbeitungseinheiten in Form von virtuellen Maschinen oder Software-Containern umgesetzt werden, die in einer Cloud gehostet werden, wodurch eine flexible Architektur für Verarbeitung und Speicherung bereitgestellt wird.
-
Beispiel-Benutzereinheit
-
Wie im Kontext von 1 erörtert, kann das Datensicherheitssystem der Architektur 100 verschiedene Typen von Benutzereinheiten umfassen. Deshalb veranschaulicht 2 ein Blockschaubild, das verschiedene Komponenten einer veranschaulichenden Benutzereinheit 200 auf einer hohen Ebene zeigt. Zu Erörterungszwecken zeigt die Veranschaulichung die Benutzereinheit 200 in der Form einer drahtlosen Datenverarbeitungseinheit, wobei klar sein sollte, dass auch andere Datenverarbeitungseinheiten in Frage kommen.
-
Die Benutzereinheit 200 kann eine oder mehrere Antennen 202; einen Senderempfänger 204 für eine zellulare WLAN-Datenübertragung, Nahbereichs-Datenübertragungstechnologie und/oder drahtgebundene Datenübertragung; eine Benutzerschnittstelle 206; und einen Arbeitsspeicher 216 enthalten. In einigen Ausführungsformen können die Antennen 202 eine Uplink-Antenne enthalten, die Funksignale an eine Basisstation sendet, und eine Downlink-Antenne, die Funksignale von der Basisstation empfängt. In einigen anderen Ausführungsformen kann eine einzelne Antenne Funksignale sowohl senden als auch empfangen. Dieselben oder andere Antennen können für eine WLAN-Datenübertragung verwendet werden. Diese Signale können von einem Senderempfänger 204 verarbeitet werden, auf den manchmal allgemein als eine Netzwerkschnittstelle verwiesen wird, der konfiguriert ist, um digitale Daten zu empfangen und zu übertragen. In einer Ausführungsform enthält die Benutzereinheit 200 die Antenne 202 nicht, und die Datenübertragung mit externen Komponenten erfolgt über eine drahtgebundene Datenübertragung.
-
In einer Ausführungsform enthält die Benutzereinheit 200 eine Benutzerschnittstelle 206, die es einem Benutzer ermöglicht, eine Eingabe bereitzustellen und eine Ausgabe von der Benutzereinheit zu empfangen. Zum Beispiel kann die Benutzerschnittstelle 206 eine Datenausgabeeinheit (z.B. visuelle Anzeige, Audio-Lautsprecher, haptische Einheit usw.) enthalten, die verwendet werden kann, um Benachrichtigungen von dem Sicherheits-Agent 103 des Sicherheitsservers 120 zu übermitteln.
-
Die Benutzerschnittstelle 206 kann auch eine oder mehrere Dateneingabeeinheiten enthalten. Die Dateneingabeeinheiten können Kombinationen von einem bzw. einer oder mehreren Tastenfeldern, Tastaturen, Mauseinheiten, Berührungsbildschirmen, Mikrofonen, Spracherkennungspaketen und sonstigen geeigneten Einheiten oder andere elektronische/Software-Auswahlschnittstellen enthalten, sie sind aber nicht darauf beschränkt. Zum Beispiel können die Dateneingabeeinheiten von einem Benutzer verwendet werden, um Anforderungen und Code einzugeben, die an den Sicherheits-Agent eines Sicherheitsservers übermittelt werden.
-
Die Benutzereinheit 200 kann einen oder mehrere Prozessoren 208 enthalten, die ein Einkernprozessor, ein Mehrkernprozessor, ein Rechenprozessor für komplexe Befehlssätze (CISC (Complex Instruction Set Computing)) oder ein anderer Prozessortyp sein können.
-
Die Hardware 210 kann eine Energiequelle und digitale Signalprozessoren (DSP) enthalten, die Einkern- oder Mehrkernprozessoren enthalten können. Die Hardware 210 kann auch Netzwerkprozessoren enthalten, die Hochgeschwindigkeits-Datenübertragungsschnittstellen verwalten, einschließlich Datenübertragungsschnittstellen, die mit peripheren Komponenten interagieren. Die Netzwerkprozessoren und die peripheren Komponenten können durch eine Vermittlungsstruktur verbunden sein. Die Hardware 210 kann ferner Hardware-Decodierer und -Codierer, einen Netzwerkschnittstellen-Controller und/oder einen USB-Controller enthalten.
-
Ein Arbeitsspeicher 216 kann unter Verwendung von durch einen Computer lesbaren Medien umgesetzt werden, wie zum Beispiel Computerspeichermedien. Speichermedien enthalten flüchtige und nicht flüchtige, entfernbare und nicht entfernbare Medien, die in irgendeinem Verfahren oder einer Technologie zum Speichern von Informationen umgesetzt sind, wie beispielsweise durch einen Computer lesbare Anweisungen, Datenstrukturen, Programmmodule und andere Daten. Computerspeichermedien umfassen RAM, ROM, EEPROM, Flash-Speicher oder eine andere Speichertechnologie, CD-ROM, DVD, hochauflösende Videospeicherplatten oder andere optische Speicher, Magnetbandkassetten, Magnetband, Magnetplattenspeicher oder andere Magnetspeichereinheiten oder jedes andere Nicht-Weiterleitungs-Medium, das zum Speichern von Information für einen Zugang durch eine Datenverarbeitungseinheit verwendet werden kann, sie sind aber nicht darauf beschränkt.
-
Der Arbeitsspeicher 216 kann verschiedene Software-Komponenten oder - Module speichern, die durch den bzw. die Prozessoren 208 und den bzw. die Controller der Benutzereinheit 200 ausführbar oder zugänglich sind. Die verschiedenen Komponenten des Arbeitsspeichers 216 können eine Software 218 und ein Betriebssystem 250 enthalten. Die Software 218 kann verschiedene Anwendungen 220 enthalten. Die Software 218 kann auch eine Sicherheitsanwendung 240 mit mehreren Modulen enthalten. Jedes Modul kann Routinen, Programmanweisungen, Objekte und/oder Datenstrukturen enthalten, die Aufgaben ausführen oder abstrakte Datentypen umsetzen.
-
Zum Beispiel kann die Sicherheitsanwendung 240 der Benutzereinheit 200 ein Berechnungsmodul 242 enthalten, das betreibbar ist, um diskrete Algorithmen auf Grundlage von Parametern zu bestimmen, die der Benutzereinheit bekannt sind, was im Folgenden ausführlicher erörtert wird. Ein Code-Identifizierungsmodul 244 kann vorhanden sein, das betreibbar ist, um einen Identifizierungscode der Benutzereinheit zu bestimmen, die für eine Datenübertragung mit dem Sicherheits-Agent 103 verwendet wird. Ein Interaktionsmodul 248 kann vorhanden sein, das für die Benutzereinheit 200 betreibbar ist, um Daten mit dem Sicherheits-Agent 103 auszutauschen.
-
Ein Betriebssystem 250 kann Komponenten enthalten, die es der Benutzereinheit 200 ermöglichen, Daten über verschiedene Schnittstellen (z.B. Benutzersteuerungen, Datenübertragungsschnittstelle und/oder Speichereingabe/-ausgabeeinheiten) zu empfangen und zu übertragen sowie Daten unter Verwendung des bzw. der Prozessoren 208 zum Generieren einer Ausgabe zu verwenden. Das Betriebssystem 250 kann eine Präsentationskomponente enthalten, die die Ausgabe darstellt (z.B. Anzeigen der Daten auf einer elektronischen Anzeige der Benutzereinheit 200, Speichern der Daten im Arbeitsspeicher 216, Übertragen der Daten zu einer anderen elektronischen Einheit usw.). Außerdem kann das Betriebssystem 250 weitere Komponenten enthalten, die verschiedene zusätzliche Funktionen ausführen, die im Allgemeinen einem Betriebssystem 250 zugehörig sind.
-
Beispiel-Prozesse
-
Anhand des vorstehenden Überblicks über die Architektur 100 und die Beispiel-Benutzereinheit 200 kann es von Nutzen sein, im Folgenden eine Erörterung von Beispiel-Prozessen auf hoher Ebene in Form von Anrufverläufen zu betrachten. Zu diesem Zweck stellen 3 und 4 veranschaulichende Anrufabläufe 300 und 400 zwischen einem Sicherheits-Agent eines Sicherheitsservers 120 und einer Benutzereinheit 102 dar. Insbesondere beschreibt der Anrufablauf 300 einen Modus einer Anforderungsreaktion, und der Anrufablauf 400 beschreibt einen interaktiven Modus zwischen einem Sicherheitsserver und einer Benutzereinheit in Übereinstimmung mit veranschaulichenden Ausführungsformen.
-
Die Anrufabläufe 300 und 400 werden als eine Sammlung von Prozessen in einem logischen Ablaufplan veranschaulicht, der eine Abfolge von Operationen darstellt, die in Hardware, Software oder einer Kombination davon umgesetzt werden können. In dem Kontext von Software stellen die Prozesse durch einen Computer ausführbare Anweisungen dar, die bei Ausführung durch einen oder mehrere Prozessoren die genannten Operationen ausführen. Im Allgemeinen können durch einen Computer ausführbare Anweisungen Routinen, Programme, Aufgaben, Komponenten, Datenstrukturen und dergleichen enthalten, die Funktionen ausführen oder abstrakte Datentypen umsetzen. Die Reihenfolge, in der die Operationen beschrieben werden, soll keinesfalls als eine Einschränkung aufgefasst werden, und jede Anzahl der beschriebenen Operationen kann in jeder Reihenfolge kombiniert und/oder parallel ausgeführt werden, um den Prozess umzusetzen. Zu Erörterungszwecken werden die Prozesse 300 und 400 unter Bezugnahme auf die Architektur 100 von 1 beschrieben.
-
In dem Anrufablauf 300 interagiert ein Benutzer (z.B. Bediener der Benutzereinheit 102) mit einem Sicherheitsserver 120, um Zugang zu den Ressourcen zu erhalten, die durch den Sicherheitsserver 120 geschützt werden. Zum Beispiel kann die Benutzereinheit 102 sichere Daten aus dem Sicherheitsserver 120, der in Hardware oder Software gespeichert sein kann, abrufen oder in sichere Daten in diesem speichern. Um einen Zugang zu den Ressourcen bereitzustellen, die durch den Sicherheitsserver 120 geschützt sind, wird die Benutzereinheit 102 von dem Sicherheitsserver durch einen im Folgenden beschriebenen Prozess einer Anforderungsreaktion authentifiziert.
-
In Schritt 312 sendet die Benutzereinheit 102 eine vordefinierte Zahl (s) an den Sicherheitsserver 120, die durch den Sicherheitsserver 120 in einem entsprechenden Arbeitsspeicher gespeichert werden kann. In verschiedenen Ausführungsformen kann die vordefinierte Zahl eine Identifizierungsnummer (z.B. Code) der Benutzereinheit 102 sein. In einer Ausführungsform erfolgt die Datenübertragung in Schritt 312 über einen Kanal, bei dem es sich nicht um PSTN handelt. PSTN betrifft typischerweise einen Fernsprechdienst Telefondienst und umfasst Telefonleitungen, Mikrowellen-Übertragungsverbindungen, Mobilfunknetzwerke usw. Anstelle von PSTN wird eine Technologie wie zum Beispiel Internet-Protokoll-Telefonie und Transmission Control Protocol/Internet Protocol (TCP/IP) verwendet. Der TCP/IP-Kanal ist ein allgemeines Internet-Protokoll für PC, Tablet, IOT und andere Einheiten. Dementsprechend kann die Datenübertragung von dem Sicherheitsserver 120 über eine WEB-Site empfangen werden.
-
Zum Beispiel kann die vordefinierte Zahl (s) eine Identifizierungsnummer einer Benutzereinheit 102 und/oder eine biometrische Kennung des Benutzers sein (wodurch eine Schicht von Hardware-Schutz bereitgestellt wird). In einer Ausführungsform wird die vordefinierte Zahl (s), auf die hierin manchmal als Parameter verwiesen wird, bei dem Sicherheitsserver 120 durch ein physisches Besuchen einer lokalen Verzweigung des privaten Netzwerks 108, wie zum Beispiel eine Bank, und ein Bereitstellen der Identifizierungsnummer der Benutzereinheit 102 als einen ersten Parameter (s) registriert. Zum Beispiel kann der Benutzer den Parameter (s) über ein Endgerät an der lokalen Verzweigung des privaten Netzwerks 108 des Sicherheitsservers 120 manuell eingeben. In anderen Szenarios kann der Benutzer die Benutzereinheit 102 verwenden, um die Informationen über eine Nahbereichs-Datenübertragungstechnologie wie z.B. Bluetooth, WLAN, Nahfeldkommunikation (NFC (Near Field Communication)) oder eine andere geeignete, ausreichend sichere Datenübertragungstechnologie zu übertragen. In einer Ausführungsform interagiert der Sicherheitsserver 120 mit einer Profildatenbank 110, um die vordefinierte Zahl (s) in der Profildatenbank zu speichern, um später eine erste Faktor-Authentifizierung eines Benutzers bereitzustellen.
-
In Schritt 313 empfängt der Sicherheitsserver 120 eine Anforderung für eine Ressource des privaten Netzwerks 108. Zum Beispiel möchte ein Bediener der Benutzereinheit 102 Informationen in einem Daten-Repository 112 des privaten Netzwerks 108 speichern oder aus diesem abrufen.
-
In Schritt 314 erstellt der Sicherheitsserver 120 eine erste Zahl (p), auf die hierin manchmal als ein erster Anforderungscode verwiesen wird, und eine zweite Zahl (g). In einer Ausführungsform ist die erste Zahl (p) eine Primzahl. Die erste Zahl (p) wird in Reaktion auf eine Authentifizierungsanforderung von der Benutzereinheit 102 an die Benutzereinheit 102 gesendet. In einer Ausführungsform wird die erste Zahl (p) über einen PSTN-Kanal oder über https (oder ein anderes WEB-Protokoll) gesendet.
-
In Schritt 316 erstellt der Sicherheitsserver 120 eine zweite Zahl (g). In einer Ausführungsform ist die zweite Zahl (g) kleiner als die erste Zahl (p) (z.B. 2 oder 5). Es wird angemerkt, dass die zweite Zahl (Parameter) g durch die Rechenleistung von Datenverarbeitungseinheiten begrenzt sein kann. Anders ausgedrückt, wenn g zu groß ist, ist es schwierig (wenn nicht nahezu unmöglich), die Ergebnisse aus den hierin bereitgestellten Gleichungen zu berechnen. In einer Ausführungsform ist g eine Primzahl. Mit zunehmender Rechenleistung kann der Parameter p eine Primzahl sein, die größer als 5 ist. Der Sicherheitsserver 120 erstellt auch einen Anforderungscode (c), auf den hierin manchmal als der zweite Anforderungscode verwiesen wird. In einer Ausführungsform ist der Anforderungscode (c) eine Zahl, die größer als die zweite Zahl (g) ist. In einer Ausführungsform ändert sich der Anforderungscode (c) nach jeder erfolgreichen Überprüfung einer Benutzereinheit 102.
-
Der Sicherheitsserver bestimmt einen ersten diskreten Logarithmus auf Grundlage des Anforderungscodes (c) und der ersten Zahl (p). Der erste diskrete Logarithmus wird durch den folgenden Ausdruck bereitgestellt:
-
Der erste diskrete Logarithmus auf Grundlage des vorgenannten Ausdrucks wird über einen Kanal, der sich von dem der Übertragung der ersten Zahl (p) in Schritt 314 unterscheidet, an die Benutzereinheit 102 gesendet. Zum Beispiel kann der Parameter p per SMS übertragen werden. Dementsprechend kennt der Sicherheitsserver 120 jetzt die Parameter s, p, g und c, wie durch Block 330 angegeben. Die Parameter g und c werden nicht explizit zu der Benutzereinheit 102 übertragen. Dementsprechend kennt die Benutzereinheit 102 nur die Parameter s und p, wie durch Block 332 angegeben.
-
In Schritt
318 und
320 berechnen sowohl der Sicherheitsserver
120 als auch die Benutzereinheit
102 jeweils den ersten Zugangscode R über einen zweiten diskreten Logarithmus auf Grundlage des ersten diskreten Logarithmus, der vordefinierten Zahl (s) und der ersten Zahl (p). In verschiedenen Ausführungsformen kann die Berechnung durch den Sicherheitsserver
120 und die Benutzereinheit
102 gleichzeitig (z.B. um Zeit zu sparen) oder nacheinander ausgeführt werden. In einer Ausführungsform wird der zweite diskrete Logarithmus durch den folgenden Ausdruck bereitgestellt:
-
Dementsprechend kann der Sicherheitsserver 120 den Zugangscode R (d.h. einen ersten Zugangscode R1) berechnen, da er über alle relevanten Parameter (d.h. s, p, g und c) des zweiten diskreten Algorithmus verfügt. Da die Benutzereinheit 102 den ersten diskreten Logarithmus vorher von dem Sicherheitsserver 120 erhalten hat und die Parameter s und p kennt, kann sie den Zugangscode R bestimmen (d.h. als zweiten Zugangscode R2).
-
In Schritt 322 empfängt der Sicherheitsserver 120 den zweiten Zugangscode R2 von der Benutzereinheit 102 und vergleicht ihn mit dem ersten Zugangscode R1, der berechnet wurde. Wenn bestimmt worden ist, dass der erste Zugangscode R1 mit dem zweiten Zugangscode R2 identisch ist, stellt der Sicherheitsserver 120 der Benutzereinheit 102 Zugang zu der angeforderten Ressource des Sicherheitsservers 120 bereit. Zum Beispiel kann der Sicherheitsserver 120 jetzt geschützte Daten von einem Daten-Repository 112 abrufen und sie über das Netzwerk 106 an die Benutzereinheit 102 senden.
-
Wenn bestimmt worden ist, dass der erste Zugangscode R1 nicht mit dem zweiten Zugangscode R2 identisch ist, identifiziert der Sicherheitsserver 120 die Benutzereinheit 102 als nicht autorisiert. In einer Ausführungsform sendet der Sicherheitsserver 120 eine Alert-Benachrichtigung an einen entsprechenden Empfänger.
-
Dementsprechend werden die Parameter g und c in dem Modus der Anforderungsreaktion des Prozesses 300 durch den Sicherheitsserver 120 geheim gehalten. Der Zugangscode R1 bleibt vor böswilligen Parteien sicher, es sein denn, alle drei Parameter p, s und c sind kompromittiert. Ferner können verschiedene Datenübertragungskanäle für die Übertragung von einigen der Parameter während des Authentifizierungsprozesses verwendet werden. Ein derartiger Ansatz führt zu einer drastischen Erhöhung der Schwierigkeit für eine böswillige Partei, das System der Architektur zu kompromittieren.
-
Im Folgenden wird auf 4 Bezug genommen, die einen Anrufablauf 400 in dem Kontext eines interaktiven Modus zwischen einem Sicherheitsserver 120 und einer Benutzereinheit 102 veranschaulicht, der mit einer veranschaulichenden Ausführungsform in Einklang steht. In dem Anrufablauf 400 interagiert ein Benutzer mit einem Sicherheitsserver 120, um Zugriff auf Ressourcen zu erhalten, die durch den Sicherheitsserver 120 geschützt werden. Um Zugriff auf die Ressourcen bereitzustellen, die durch den Sicherheitsserver 120 geschützt sind, wird die Benutzereinheit 102 durch den Sicherheitsserver 120 mittels eines Prozesses eines interaktiven Modus authentifiziert.
-
In Schritt 410 sendet die Benutzereinheit 102 eine vordefinierte Zahl (p) an den Sicherheitsserver 120, die durch den Sicherheitsserver 120 in einem entsprechenden Arbeitsspeicher des privaten Netzwerks 108 gespeichert werden kann. In einer Ausführungsform erfolgt die Datenübertragung in Schritt 412 über einen Kanal, bei dem es sich nicht um PSTN handelt. Zum Beispiel wird eine Technologie wie TCP/IP aus Gründen der Datensicherheit verwendet. Dementsprechend kann die Datenübertragung von dem Sicherheitsserver 120 über eine WEB-Site empfangen werden. In anderen Ausführungsformen kann die vordefinierte Zahl (s) eine Identifizierungsnummer einer Benutzereinheit 102 und/oder eine biometrische Kennung des Benutzers sein (wodurch eine Schicht von Hardware-Schutz bereitgestellt wird).
-
In einer Ausführungsform wird die vordefinierte Zahl (p), auf die hierin manchmal als erster Parameter (p) verwiesen wird, an dem Sicherheitsserver 120 durch ein physisches Besuchen einer lokalen Verzweigung des privaten Netzwerks 108, wie zum Beispiel eine Bank, und ein Bereitstellen der Identifizierungsnummer der Benutzereinheit 102 als ersten Parameter (p) registriert. Zum Beispiel kann der Benutzer den Parameter (p) über ein Endgerät an der lokalen Verzweigung des privaten Netzwerks 108 des Sicherheitsservers 120 manuell eingeben. In anderen Szenarios kann der Benutzer die Benutzereinheit 102 verwenden, um die Informationen ihrer vordefinierten Zahl (p) über eine Nahbereichs-Datenübertragungstechnologie wie z.B. Bluetooth, WLAN, NFC usw. zu übertragen.
-
In Schritt 412 empfängt der Sicherheitsserver 120 eine Anforderung für eine Ressource des privaten Netzwerks 108. Zum Beispiel möchte ein Bediener der Benutzereinheit 102 Informationen in einem Daten-Repository 112 des privaten Netzwerks 108 speichern oder aus diesem abrufen.
-
In Schritt
414 erstellt der Sicherheitsserver
120 eine erste Zahl (c) und eine zweite Zahl (g). In einer Ausführungsform ist die erste Zahl (c) größer als die zweite Zahl (g). Der Sicherheitsserver
120 bestimmt einen ersten diskreten Logarithmus auf Grundlage der ersten Zahl (c), der zweiten Zahl (g) und der vordefinierten großen Zahl (p). Der erste diskrete Logarithmus wird durch den folgenden Ausdruck bereitgestellt:
-
Die zweite Zahl (g) und der erste diskrete Logarithmus werden in Reaktion auf die Anforderung für eine Ressource des privaten Netzwerks 108 von der Benutzereinheit 120 an die Benutzereinheit 102 gesendet. In einer Ausführungsform werden sowohl die zweite Zahl (g) als auch der erste diskrete Logarithmus in einem selben digitale Datenpaket über einen PSTN-Kanal oder über https (oder ein anderes WEB-Protokoll) gesendet.
-
In Schritt
416 generiert die Benutzereinheit
102 eine dritte Zahl (s). In einer Ausführungsform ist die dritte Zahl (s) größer als die zweite Zahl (g). Die Benutzereinheit
102 bestimmt auch einen zweiten diskreten Logarithmus auf Grundlage der empfangenen zweiten Zahl (g), der generierten dritten Zahl (s) und der vordefinierten Zahl (p). Der zweite diskrete Logarithmus wird durch den folgenden Ausdruck bereitgestellt:
-
Der zweite diskrete Logarithmus auf Grundlage des obigen Ausdrucks wird von dem Sicherheitsserver 120 von der Benutzereinheit 102 empfangen.
-
In Schritt
418 und
420 berechnen der Sicherheitsserver
120 und die Benutzereinheit
102 jeweils einen ersten Zugangscode R
1 und einen zweiten Zugangscode R
2. Der erste Zugangscode R
1, der durch den Sicherheitsserver
120 bestimmt wird, beruht auf dem zweiten diskreten Logarithmus (empfangen von der Benutzereinheit
102 in Schritt
416), der ersten Zahl (c) und der vordefinierten Zahl (p), die in Schritt
410 empfangen wurde. In dem zweiten Zugangscode ist der Parameter (s) inhärent, der durch den zweiten diskreten Logarithmus verschleiert wird. In einer Ausführungsform wird der erste Zugangscode R
1 durch den Ausdruck des im Folgenden angegebenen dritten diskreten Logarithmus bereitgestellt:
-
Im Gegensatz dazu beruht der zweite Zugangscode R
2, der durch die Benutzereinheit
102 bestimmt wird, auf dem ersten diskreten Logarithmus (empfangen von dem Sicherheitsserver
120 in Schritt
414), der dritten Zahl (s) und der vordefinierten Zahl (p). In einer Ausführungsform beruht der zweite Zugangscode R
2 auf dem Ausdruck des im Folgenden bereitgestellten vierten diskreten Logarithmus.
-
In Schritt 422 empfängt der Sicherheitsserver 120 den zweiten Zugangscode R2 von der Benutzereinheit 102 und vergleicht ihn mit dem ersten Zugangscode R1, der vorher berechnet wurde. Nach einem Bestimmen, dass der erste Zugangscode R1 mit dem zweiten Zugangscode R2 identisch ist, stellt der Sicherheitsserver 120 der Benutzereinheit 102 Zugang zu der angeforderten Ressource des privaten Netzwerks 108 bereit. Zum Beispiel kann der Sicherheitsserver 120 jetzt geschützte Daten von einem Daten-Repository 112 abrufen und sie über das Netzwerk 106 an die Benutzereinheit 102 senden.
-
Wenn bestimmt worden ist, dass der erste Zugangscode R1 nicht mit dem zweiten Zugangscode R2 identisch ist, identifiziert der Sicherheitsserver 120 die Benutzereinheit 102 als nicht autorisiert. In einer Ausführungsform sendet der Sicherheitsserver 120 eine Alert-Benachrichtigung an einen entsprechenden Empfänger.
-
Dementsprechend wird der Parameter c in dem interaktiven Modus des Prozesses 400 durch den Sicherheitsserver 120 geheim gehalten. Der erste und der zweite Zugangscode R1 and R2 bleiben vor böswilligen Parteien sicher. Da ferner verschiedene Datenübertragungskanäle für die Übertragung von einigen der Parameter während des Authentifizierungsprozesses verwendet werden können, führt dies zu einer drastischen Erhöhung der Schwierigkeit für eine böswillige Partei, das System der Architektur 100 zu kompromittieren.
-
Beispielhafte Computerplattform
-
Wie oben erörtert, können Funktionen in Bezug auf ein Bereitstellen einer sicheren Multifaktor-Authentifizierung unter Verwendung von einer oder mehreren Datenverarbeitungseinheiten ausgeführt werden, die zur Datenübertragung über drahtlose oder drahtgebundene Datenübertragung verbunden sind, wie in 1 und gemäß den Anrufabläufen 300 und 400 von 3 und 4 gezeigt. Eine beispielhafte Datenverarbeitungseinheit in Form einer Benutzereinheit 200 wurde oben unter Bezugnahme auf 2 erörtert. 5 stellt eine Veranschaulichung eines funktionsbezogenen Blockschaubilds einer Computer-Hardwareplattform bereit, die fähig ist, eine sichere Multifaktor-Authentifizierung bereitzustellen. Insbesondere veranschaulicht 5 ein Netzwerk oder eine Host-Computerplattform 500, die zum Umsetzen eines Servers verwendet werden kann, wie zum Beispiel der Sicherheitsserver 120 von 1.
-
Die Computerplattform 500 kann eine Zentraleinheit (CPU) 504, ein Festplattenlaufwerk (HDD) 506, einen Direktzugriffspeicher (RAM) und/oder einen Nur-Lese-Speicher (ROM) 508, eine Tastatur 510, eine Maus 512, eine Anzeige 514 und eine Datenübertragungsschnittstelle 516 enthalten, die mit einem Systembus 502 verbunden sind.
-
In einer Ausführungsform besitzt das HDD 506 Fähigkeiten, die ein Speichern eines Programms umfassen, das verschiedene Prozesse, wie zum Beispiel ein Sicherheits-Agent 540, auf eine hierin beschriebene Weise ausführen kann. Für den Sicherheits-Agent 540 können verschiedene Module zum Ausführen von unterschiedlichen Funktionen konfiguriert sein.
-
Zum Beispiel kann ein Interaktionsmodul 542 vorhanden sein, das betreibbar ist, um Anforderungen für Ressourcen eines privaten Netzwerks von Benutzereinheiten zu empfangen. Das Interaktionsmodul 542 kann auch verschiedene Parameter von Benutzereinheiten empfangen und Parameter an diese senden. Das Interaktionsmodul 542 kann auch mit einer Profildatenbank interagieren, um Profilinformationen über einen Benutzer als einen ersten Schritt in einem Multifaktor-Authentifizierungsprozess abzurufen. In Ausführungsformen, in denen sich die Daten, die geschützt werden sollen, in einem separaten Daten-Repository befinden, kann das Interaktionsmodul mit einem derartigen Repository Daten austauschen, um die relevanten Daten aus dem Daten-Repository abzurufen und sie an den entsprechenden Benutzer zu senden, wenn bestätigt worden ist, dass der Benutzer autorisiert ist.
-
In einer Ausführungsform ist ein Berechnungsmodul 546 vorhanden, das betreibbar ist, um verschiedene diskrete Logarithmen und Zugangscodes während eines Authentifizierungsprozesses zu berechnen. Das Berechnungsmodul 546 kann auch zu einem Bestimmen verwendet werden, ob ein erster Zugangscode R1 mit einem zweiten Zugangscode R2 identisch ist.
-
In einer Ausführungsform ist ein Anforderungscode-Modul 548 vorhanden, das betreibbar ist, um verschiedene Anforderungscodes während eines Authentifizierungsprozesses zu generieren. In einer Ausführungsform ändert sich der Anforderungscode nach jeder Transaktion mit einem autorisierten Benutzer. Anders ausgedrückt, ein Anforderungscode ist nach jeder erfolgreichen Interaktion mit einem autorisierten Benutzer aufgebraucht.
-
In einer Ausführungsform ist ein Autorisierungsmodul 550 vorhanden, das betreibbar ist, um einem Bediener einer Benutzereinheit zu ermöglichen, Ressourcen eines privaten Netzwerks 108 zu empfangen, wenn bestimmt worden ist, dass der durch die Benutzereinheit bereitgestellte Zugangscode einem Zugangscode entspricht, der durch den Sicherheits-Agent berechnet worden ist.
-
In einer Ausführungsform ist ein Benachrichtigungsmodul 556 vorhanden, das betreibbar ist, um einen entsprechenden Empfänger nach einem Bestimmen zu warnen, dass ein Benutzer, der Zugriff auf ein privates Netzwerk anfordert, nicht autorisiert ist. Ein entsprechender Empfänger kann der Account-Inhaber (d.h. Benutzer), ein IT-Administrator des privaten Netzwerks, ein Sicherheits-Agent des privaten Netzwerks usw. sein.
-
In einer Ausführungsform kann ein Programm wie zum Beispiel Apache™ zum Betreiben des Systems als ein Web-Server gespeichert werden. In einer Ausführungsform kann das HDD 506 eine ausführende Anwendung speichern, die ein oder mehrere Bibliotheks-Softwaremodule enthält, wie diejenigen für das Java™-Programm Runtime Environment zum Verwirklichen einer JVM (virtuelle Maschine von Java™).
-
Schlussfolgerung
-
Die Beschreibungen der verschiedenen Ausführungsformen der vorliegenden Lehren wurden zum Zweck der Veranschaulichung erstellt, sie sollen aber keineswegs erschöpfend oder auf die offenbarten Ausführungsformen eingeschränkt sein. Für Fachleute sind viele Modifizierungen und Variationen offenkundig, die nicht von dem Schutzumfang der beschriebenen Ausführungsformen abweichen. Die hierin verwendete Terminologie wurde gewählt, um die Grundgedanken der Ausführungsformen, der praktischen Anwendung oder technischen Verbesserung gegenüber auf dem Markt gefundenen Technologien bestmöglich zu erklären oder anderen Fachleuten das Verständnis der hierin offenbarten Ausführungsformen zu ermöglichen.
-
Die obigen Ausführungen wurden unter Berücksichtigung dessen, was als bester Zustand erachtet wurde und/oder anderen Beispielen beschrieben, doch sollte klar sein, dass verschiedene Modifizierungen vorgenommen werden können, und dass die hierin offenbarte Thematik in verschiedenen Formen und Beispielen umgesetzt werden kann, und dass die Lehren auf zahlreiche Anwendungsmöglichkeiten angewendet werden können, von denen nur einige hierin beschrieben wurden. Sämtliche Anwendungen, Modifizierungen und Variationen, die unter den zutreffenden Schutzumfang der vorliegenden Lehren fallen, sollen durch die folgenden Ansprüche beansprucht werden.
-
Die Komponenten, Schritte, Funktionen, Aufgaben, Nutzen und Vorteile, die hierin erörtert wurden, dienen nur zur Veranschaulichung. Weder sie noch die zugehörigen Erörterungen sollen den Umfang des Patentschutzes einschränken. Obwohl hierin verschiedene Vorteile erörtert worden sind, sollte klar sein, dass nicht alle Ausführungsformen notwendigerweise alle Vorteile aufweisen. Sofern nicht anders angegeben, sind alle Maßangaben, Werte, Bewertungen, Positionen, Größenordnungen, Größen und andere technische Daten, die in dieser Patentschrift einschließlich der folgenden Ansprüche dargelegt werden, ungefähre und keine exakten Angaben. Sie sollen einen sinnvollen Bereich angeben, der mit den Funktionen, auf die sie sich beziehen und mit dem in Einklang steht, was im Stand der Technik, zu dem sie gehören, üblich ist.
-
Zahlreiche andere Ausführungsformen werden ebenfalls in Erwägung gezogen. Diese umfassen Ausführungsformen mit weniger, zusätzlichen und/oder verschiedenen Komponenten, Schritten, Funktionen, Aufgaben, Nutzen und Vorteilen. Diese umfassen auch Ausführungsformen, in denen die Komponenten und/oder Schritte angeordnet und/oder anders angeordnet sind.
-
Aspekte der vorliegenden Offenbarung werden hierin unter Bezugnahme auf eine Veranschaulichung eines Ablaufplans und/oder Blockschaubilds eines Verfahrens, einer Vorrichtung (Systemen) und von Computerprogrammprodukten gemäß Ausführungsformen der vorliegenden Offenbarung beschrieben. Es sollte klar sein, dass jeder Block der Ablaufplanveranschaulichungen und/oder der Blockschaubilder und Kombinationen von Blöcken in den Ablaufplanveranschaulichungen und/oder den Blockschaubildern mittels durch einen Computer lesbare Programmanweisungen umgesetzt 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, sodass die über den Prozessor des Computers bzw. eine andere programmierbare Datenverarbeitungsvorrichtung ausgeführten Anweisungen ein Mittel zur Umsetzung der in dem Block bzw. den Blöcken der Ablaufpläne und/oder der Blockschaubilder angegebenen 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 Art und Weise funktionieren, sodass das durch einen Computer lesbare Speichermedium, auf dem Anweisungen gespeichert sind, ein Herstellungsprodukt aufweist, darunter Anweisungen, die Aspekte der/des in dem Block bzw. den Blöcken des Ablaufplans und/oder der Blockschaubilder 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 Arbeitsschritten auf dem Computer bzw. der anderen programmierbaren Vorrichtung oder anderen Einheit zu verursachen, um einen durch einen Computer umgesetzten Prozess zu erzeugen, sodass 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 Blockschaubilder angegebenen Funktionen/Schritte umsetzen.
-
Der Ablaufplan und die Blockschaubilder in den FIGUREN hierin veranschaulichen die Architektur, die Funktionalität und den Betrieb von möglichen Umsetzungen von Systemen, Verfahren und Computerprogrammprodukten gemäß verschiedenen Ausführungsformen der vorliegenden Offenbarung. In diesem Zusammenhang kann jeder Block in den Ablaufplänen oder den Blockschaubildern ein Modul, ein Segment oder einen Teil von Anweisungen darstellen, die eine oder mehrere ausführbare Anweisungen zum Umsetzen der bestimmten logischen Funktion(en) aufweisen. In einigen alternativen Umsetzungen können die in dem Block angegebenen Funktionen in einer anderen Reihenfolge als in den Figuren gezeigt auftreten. Zum Beispiel können zwei nacheinander gezeigte Blöcke tatsächlich im Wesentlichen parallel ausgeführt werden, oder die Blöcke können manchmal in der umgekehrten Reihenfolge ausgeführt werden, was von der beteiligten Funktionalität abhängt. Es ist ferner anzumerken, dass jeder Block der Blockschaubilder und/oder der Ablaufplandarstellungen sowie Kombinationen von Blöcken in den Blockschaubildern und/oder der Ablaufplandarstellung durch spezielle auf Hardware beruhende Systeme umgesetzt werden können, welche die angegebenen Funktionen oder Handlungen durchführen oder Kombinationen aus Spezial-Hardware und Computeranweisungen ausführen.
-
Zwar wurden die obigen Ausführungen in Verbindung mit beispielhaften Ausführungen beschrieben, doch sollte klar sein, dass der Begriff „beispielhaft“ nur als ein Beispiel und nicht als das Beste oder Optimale zu verstehen ist. Mit Ausnahme der unmittelbar vorhergehenden Ausführungen ist nichts von dem, was angegeben oder veranschaulicht worden ist, als Interpretation aufzufassen oder sollte so interpretiert werden, dass dies zu einem Verzicht auf jede Komponente, jeden Schritt, jede Funktion, jede Aufgabe, jeden Nutzen, jeden Vorteil oder jede Entsprechung für die Öffentlichkeit führt, ohne Berücksichtigung dessen, ob eine Erwähnung in den Ansprüchen vorliegt.
-
Es sollte klar sein, dass die hierin verwendeten Begriffe und Ausdrücke die gewöhnliche Bedeutung von derartigen Begriffen und Ausdrücken in Bezug auf ihre jeweiligen Fachgebiete und Studienbereiche haben, ausgenommen in Fällen, in denen spezielle Bedeutungen für sie hierin dargelegt worden sind. Beziehungsbegriffe wie zum Beispiel erste/r/s und zweite/r/s und dergleichen können allein zum Unterscheiden einer Entität oder Aktion von einer anderen verwendet werden, ohne dass notwendigerweise irgendeine tatsächliche derartige Beziehung oder Reihenfolge zwischen derartigen Entitäten oder Aktionen erforderlich ist oder impliziert wird. Die Begriffe „weist auf“, „aufweisend“ oder jede andere Variation davon sollen eine nicht ausschließende Einbeziehung abdecken, sodass ein Prozess, Verfahren, Artikel oder eine Vorrichtung, die eine Liste von Elemente aufweisen, nicht nur diese Elemente enthalten, sondern auch andere Elemente enthalten können, die nicht ausdrücklich aufgeführt oder einem solchen Prozess, Verfahren, Artikel oder einer solchen Vorrichtung inhärent sind. Ein Element mit einem vorangestellten „ein/eine“ schließt ohne weitere Einschränkungen das Vorhandensein von weiteren identischen Elementen in dem Prozess, Verfahren, Artikel oder der Vorrichtung nicht aus, die das Element aufweisen.
-
Die Zusammenfassung der Offenbarung wird bereitgestellt, um dem Leser schnell die Natur der technischen Offenbarung zu vermitteln. Sie wird mit dem Verständnis unterbreitet, dass sie nicht für eine Interpretation oder Einschränkung des Schutzumfangs oder der Bedeutung der Ansprüche verwendet wird. Des Weiteren ist aus der vorstehenden Ausführlichen Beschreibung ersichtlich, dass in verschiedenen Ausführungsformen verschiedene Funktionen zur Straffung der Offenbarung zusammengefasst worden sind. Dieses Offenbarungsverfahren soll keinesfalls als eine Absicht interpretiert werden, dass die beanspruchten Ausführungsformen mehr Funktionen haben als ausdrücklich in jedem Anspruch zitiert. Stattdessen, wie durch die folgenden Ansprüche wiedergegeben, ist der Erfindungsgegenstand in weniger als allen Funktionen einer einzelnen offenbarten Ausführungsform vorhanden. Somit werden die folgenden Ansprüche hiermit in die „Ausführliche Beschreibung“ aufgenommen, wobei jeder Anspruch für sich selbst als separat beanspruchter Gegenstand steht.