-
EINLEITUNG
-
Vorrichtungen und Verfahren, die mit exemplarischen Ausführungsformen in Einklang stehen, beziehen sich auf die Authentifizierung einer Anwendung. Insbesondere beziehen sich Vorrichtungen und Verfahren in Übereinstimmung mit exemplarischen Ausführungsformen auf die Authentifizierung einer ersten Anwendung auf einer entfernten Vorrichtung zur Kommunikation mit einer zweiten Anwendung auf einer lokalen Vorrichtung.
-
KURZDARSTELLUNG
-
Eine oder mehrere exemplarische Ausführungsformen stellen ein Verfahren und eine Vorrichtung bereit, die einen sicheren Zugriff zwischen einer Anwendung auf einer entfernten Vorrichtung, wie beispielsweise einer mobilen Vorrichtung, und einer Anwendung auf einer lokalen Vorrichtung, wie beispielsweise einem Zentralstapelmodul, ermöglicht. Insbesondere bieten eine oder mehrere exemplarische Ausführungsformen ein Verfahren und eine Vorrichtung, die eine Authentifizierungs- oder Netzwerk-Broker-Anwendung beinhalten, die einen sicheren Zugriff zwischen einer Anwendung auf einer mobilen Vorrichtung und einer Anwendung auf einem Zentralstapelmodul ermöglicht.
-
Gemäß einem Aspekt einer exemplarischen Ausführungsform ist ein Verfahren zur Authentifizierung einer Anwendung vorgesehen. Das Verfahren beinhaltet das Erfassen einer Eingabe, um in einen Registrierungsmodus auf einer ersten Vorrichtung einzutreten, und das Eintreten in den Registrierungsmodus für eine vorbestimmte Zeitspanne, während der vorbestimmten Zeitspanne, das Verbinden einer Authentifizierungsanwendung auf der ersten Vorrichtung mit einer zweiten Anwendung auf einer zweiten Vorrichtung auf einer zweiten Adresse und einem zweiten Port als Reaktion auf das Empfangen einer ersten Anforderung auf einer ersten Adresse und einem Port von der zweiten Anwendung, Empfangen einer zweiten Anforderung einschließlich eines signierten Zertifikats der zweiten Vorrichtung, Bestimmen, ob das signierte Zertifikat gültig ist, als Reaktion darauf, dass das signierte Zertifikat gültig ist, Anzeigen eines Bildschirms zur Annahme der Anforderung, wenn das signierte Zertifikat nicht genehmigt ist, und Speichern der Anforderung, wenn die Anforderung akzeptiert wird.
-
Die zweite Anforderung einschließlich des signierten Zertifikats kann unter anderem eine oder mehrere Informationen zur Benutzeridentifizierung, Informationen zur Anwendungsidentifizierung, einen angeforderten Dienstnamen, einen angeforderten Dienstport, ein Zertifikat der zweiten Vorrichtung und einen öffentlichen Schlüssel der zweiten Vorrichtung beinhalten.
-
Das Verbinden der Authentifizierungsanwendung auf der ersten Vorrichtung mit der zweiten Anwendung der zweiten Vorrichtung auf der zweiten Adresse und dem Port als Reaktion auf das Empfangen der ersten Anforderung auf der ersten Adresse und dem Port von der zweiten Anwendung kann das Beantworten der Anforderung durch Bereitstellen der zweiten Adresse und des Ports auf die zweite Anwendung beinhalten.
-
Die erste Anforderung der ersten Adresse und des Ports der zweiten Anwendung kann eine Multicast Domain Name System-(mDNS)-Anforderung beinhalten, wobei die erste Adresse und der erste Port ein UDP-ratenbegrenzter Port sein können. Zudem kann die zweite Adresse und der zweite Port ein TCP-ratenbegrenzter Port sein.
-
Der Bildschirm zur Annahme der Anforderung kann eine erste Option zur Annahme einer Verbindung von der zweiten Anwendung, eine zweite Option zur Annahme einer Verbindung von der zweiten Anwendung für die empfangene Anforderung und eine dritte Option zur Ablehnung einer Verbindung von der zweiten Anwendung für die empfangene Anforderung beinhalten.
-
Gemäß einem Aspekt einer exemplarischen Ausführungsform ist ein Verfahren zur Authentifizierung einer Anwendung vorgesehen. Das Verfahren beinhaltet das Verbinden einer Authentifizierungsanwendung auf einer ersten Vorrichtung mit einer zweiten Anwendung einer zweiten Vorrichtung auf einer zweiten Adresse und einem Port als Reaktion auf das Empfangen einer ersten Anforderung auf einer ersten Adresse und einem Port von der zweiten Anwendung, das Empfangen einer zweiten Anforderung einschließlich eines signierten Zertifikats der zweiten Vorrichtung, das Bestimmen, ob das signierte Zertifikat gültig ist, als Reaktion auf das Bestimmen, dass das signierte Zertifikat gültig ist, das Anzeigen eines Bildschirms zur Annahme einer Anforderung, wenn das signierte Zertifikat nicht genehmigt ist, Senden einer ersten verschlüsselten Zufallszahl und einer zweiten verschlüsselten Zufallszahl an die erste Anwendung auf der ersten Vorrichtung und die zweite Anwendung auf der zweiten Vorrichtung, Empfangen eines ersten Hash der entschlüsselten ersten Zufallszahl und eines ersten gemeinsamen vordefinierten Kontextstrings durch die Authentifizierungsanwendung, Verifizieren des empfangenen ersten Hash bei der Authentifizierungsanwendung und Schließen eines Firewall-Sync-Ports, wenn die Verifizierung des empfangenen ersten Hash fehlschlägt, oder Öffnen eines angeforderten TLS-Ports, wenn die Verifizierung des empfangenen ersten Hash erfolgreich ist.
-
Das Verfahren kann auch das Empfangen eines zweiten Hash der zweiten entschlüsselten Zufallszahl und eines zweiten gemeinsamen vordefinierten Kontextstrings durch die erste Anwendung, das Verifizieren des zweiten Hash an der ersten Anwendung und das Einrichten eines TLS PSK basierend auf dem verifizierten zweiten Hash und der zweiten Zufallszahl beinhalten.
-
Die zweite Anforderung einschließlich des signierten Zertifikats kann unter anderem eine oder mehrere Informationen zur Benutzeridentifizierung, Informationen zur Anwendungsidentifizierung, einen angeforderten Dienstnamen, einen angeforderten Dienstport, ein Zertifikat der zweiten Vorrichtung und einen öffentlichen Schlüssel der zweiten Vorrichtung beinhalten.
-
Die erste Anforderung an der ersten Adresse und des Ports von der zweiten Anwendung kann eine Multicast Domain Name System-(mDNS)-Anforderung beinhalten, wobei die erste Adresse und der erste Port einen UDP-ratenbegrenzter Port beinhalten und die zweite Adresse und der zweite Port einen TCP-ratenbegrenzten Port umfassen.
-
Das Verbinden der Authentifizierungsanwendung auf der ersten Vorrichtung mit der zweiten Anwendung der zweiten Vorrichtung auf der zweiten Adresse und dem Port als Reaktion auf das Empfangen der Anforderung auf der ersten Adresse und dem Port von der zweiten Anwendung kann das Beantworten der Anforderung durch Bereitstellen der zweiten Adresse und des Ports auf die zweite Anwendung beinhalten.
-
Der Bildschirm zur Annahme der Anforderung kann eine erste Option zur Annahme einer Verbindung von der zweiten Anwendung, eine zweite Option zur Annahme einer Verbindung von der zweiten Anwendung für die empfangene Anforderung und eine dritte Option zur Ablehnung einer Verbindung von der zweiten Anwendung für die empfangene Anforderung beinhalten.
-
Gemäß einem Aspekt einer exemplarischen Ausführungsform ist eine Vorrichtung zur Authentifizierung einer Anwendung vorgesehen. Die Vorrichtung beinhaltet: mindestens einen Speicher mit computerausführbaren Anweisungen und mindestens einen Prozessor, der konfiguriert ist, um die computerausführbaren Anweisungen zu lesen und auszuführen. Die computerausführbaren Anweisungen veranlassen den mindestens einen Prozessor zum Verbinden einer Authentifizierungsanwendung auf einer ersten Vorrichtung mit einer zweiten Anwendung auf einer zweiten Vorrichtung auf einer zweiten Adresse und einem zweiten Port als Reaktion auf das Empfangen einer ersten Anforderung auf einer ersten Adresse und einem Port von der zweiten Anwendung, Empfangen einer zweiten Anforderung einschließlich eines signierten Zertifikats der zweiten Vorrichtung, Bestimmen, ob das signierte Zertifikat gültig ist, als Reaktion darauf, dass das signierte Zertifikat gültig ist, Anzeigen eines Bildschirms zur Annahme der Anforderung, wenn das signierte Zertifikat nicht genehmigt ist, und Ausführen einer Funktion, wenn die Anforderung akzeptiert wird.
-
Die computerausführbaren Anweisungen können den mindestens einen Prozessor veranlassen, die Funktion auszuführen, wenn die Anforderung durch Speichern der Anforderung akzeptiert wird.
-
Die computerausführbaren Anweisungen können den mindestens einen Prozessor veranlassen, die Funktion auszuführen, wenn die Anforderung akzeptiert wird durch: Senden einer ersten verschlüsselten Zufallszahl und einer zweiten verschlüsselten Zufallszahl an die erste Anwendung auf der ersten Vorrichtung und die zweite Anwendung auf der zweiten Vorrichtung; Empfangen eines ersten Hash der entschlüsselten ersten Zufallszahl und eines ersten gemeinsamen vordefinierten Kontextstrings durch die Authentifizierungsanwendung; Verifizieren des empfangenen ersten Hash bei der Authentifizierungsanwendung; und Schließen eines Firewall-Synchronisierungsports, wenn die Verifizierung des empfangenen ersten Hash fehlschlägt oder Öffnen eines angeforderten TLS-Ports, wenn die Verifizierung des empfangenen ersten Hash erfolgreich ist.
-
Die computerausführbaren Anweisungen veranlassen den mindestens einen Prozessor, die Funktion auszuführen, wenn die Anforderung akzeptiert wird durch: Empfangen eines zweiten Hash der zweiten entschlüsselten Zufallszahl und eines zweiten gemeinsamen vordefinierten Kontextstrings; Verifizieren des zweiten Hash an der ersten Anwendung; und Einrichten eines TLS PSK basierend auf dem verifizierten zweiten Hash und der zweiten Zufallszahl.
-
Die Anforderung einschließlich des signierten Zertifikats kann unter anderem eine oder mehrere Informationen zur Benutzeridentifizierung, Informationen zur Anwendungsidentifizierung, einen angeforderten Dienstnamen, einen angeforderten Dienstport, ein Zertifikat der zweiten Vorrichtung und einen öffentlichen Schlüssel der zweiten Vorrichtung beinhalten.
-
Die computerausführbaren Anweisungen können den mindestens einen Prozessor veranlassen, die Authentifizierungsanwendung auf der ersten Vorrichtung mit der zweiten Anwendung der zweiten Vorrichtung auf der zweiten Adresse und dem Port als Reaktion auf das Empfangen der Anforderung auf der ersten Adresse und dem Port von der zweiten Anwendung durch Reagieren auf die Anforderung durch Bereitstellen der zweiten Adresse und des Ports an die zweite Anwendung.
-
Der Bildschirm zur Annahme der Anforderung kann eine erste Option zur Annahme einer Verbindung von der zweiten Anwendung, eine zweite Option zur Annahme einer Verbindung von der zweiten Anwendung für die empfangene Anforderung und eine dritte Option zur Ablehnung einer Verbindung von der zweiten Anwendung für die empfangene Anforderung beinhalten.
-
Die Anforderung an der ersten Adresse und des Ports von der zweiten Anwendung kann eine Multicast Domain Name System-(mDNS)-Anforderung beinhalten, wobei die erste Adresse und der erste Port ein UDP-ratenbegrenzter Port sein kann und die zweite Adresse und der zweite Port einen TCP-ratenbegrenzten Port umfassen.
-
Weitere Zwecke, Vorteile und neuartige Merkmale der Ausführungsformbeispiele ergeben sich aus der nachfolgenden detaillierten Beschreibung der Ausführungsbeispiele und den beigefügten Zeichnungen.
-
Figurenliste
-
- 1 zeigt ein Blockdiagramm einer Vorrichtung, die eine Anwendung gemäß einem Aspekt einer exemplarischen Ausführungsform authentifiziert;
- 2 zeigt ein Blockdiagramm einer Vorrichtung, die eine Anwendung gemäß einem Aspekt einer exemplarischen Ausführungsform authentifiziert;
- 3 zeigt ein Diagramm eines Systems, die eine Anwendung gemäß einer exemplarischen Ausführungsform authentifiziert;
- 4 zeigt ein Flussdiagramm zur Authentifizierung einer Anwendung gemäß einer weiteren exemplarischen Ausführungsform;
- 5 zeigt ein Flussdiagramm zur Authentifizierung einer Anwendung gemäß einer weiteren exemplarischen Ausführungsform; und
- 6 zeigt ein Flussdiagramm für ein Verfahren zur Authentifizierung einer Anwendung gemäß einer exemplarischen Ausführungsform.
-
AUSFÜHRLICHE BESCHREIBUNG
-
Eine Vorrichtung und ein Verfahren, die eine Anwendung authentifizieren, werden nun im Detail unter Bezugnahme auf die 1 - 6 der beigefügten Zeichnungen, in denen sich gleiche Bezugszeichen durchgehend auf gleiche Elemente beziehen, beschrieben.
-
Die folgende Offenbarung ermöglicht es Fachleuten Erfindungsgedanken auszuüben. Jedoch sind die hierin offenbarten exemplarischen Ausführungsformen lediglich exemplarisch und beschränken nicht den Erfindungsgedanken der hierin beschriebenen Ausführungsbeispiele. Außerdem sollten Beschreibungen der Merkmale oder Aspekte jeder exemplarischen Ausführungsform normalerweise als verfügbar für Aspekte von anderen Ausführungsbeispielen berücksichtigt werden.
-
Es versteht sich auch, dass dort, wo es hierin angegeben ist, ein erstes Element mit einem zweiten Element „verbunden mit“, „gebildet auf“ oder „angelegt“ ist, das erste Element direkt verbunden mit, direkt gebildet auf oder direkt auf dem zweiten Element angeordnet sein kann, dass Zwischenelemente zwischen dem ersten Element und dem zweiten Element vorhanden sein können, es sei denn, es wird angegeben, dass ein erstes Element „direkt“ mit dem zweiten Element verbunden, daran befestigt, darauf ausgebildet oder auf diesem angeordnet ist. Wenn darüber hinaus ein erstes Element dazu konfiguriert ist, Informationen von einem zweiten Element zu „senden“ oder auf diesem zu „empfangen“, kann das erste Element die Informationen direkt zu dem zweiten Element senden oder von diesem empfangen, die Informationen über einen Bus senden oder von diesem empfangen, die Informationen über ein Netzwerk senden oder empfangen, oder die Information über Zwischenelemente senden oder empfangen, es sei denn, das erste Element wird angezeigt, um Informationen „direkt“ zu dem zweiten Element zu senden oder von diesem zu empfangen.
-
In der gesamten Offenbarung können eines oder mehrere der offenbarten Elemente zu einer einzigen Vorrichtung kombiniert oder zu einer oder mehreren Vorrichtungen kombiniert werden. Zusätzlich können einzelne Elemente auf separaten Vorrichtungen vorgesehen sein.
-
Fahrzeuge und andere Maschinen beinhalten inzwischen verschiedene Vorrichtungen, wie beispielsweise Infotainmentsysteme, Tablets, Computer und Radios, die Anwendungen ausführen. Die vorstehend genannten Vorrichtungen oder ähnliche Vorrichtungen können sich drahtlos mit einem anderen Vorrichtungen, wie beispielsweise einer entfernten Vorrichtung oder einer mobilen Vorrichtung, verbinden, um Informationen über eine drahtlose Verbindung oder ein drahtloses Netzwerk auszutauschen. In einem Fall muss eine Anwendung, die auf einem Infotainmentsystem eines Fahrzeugs ausgeführt wird, Informationen mit einer Anwendung austauschen, die auf der entfernten oder mobilen Vorrichtung ausgeführt wird.
-
Außerdem ist es wünschenswert, dass die drahtlose Verbindung zwischen dem Infotainmentsystem und der mobilen Vorrichtung sicher ist und/oder dass die mobile Vorrichtung vor dem Austausch von Informationen authentifiziert wird, um zu gewährleisten, dass das Infotainmentsystem keine Informationen von unerwünschten Vorrichtungen empfängt oder an diese überträgt. Um dieses Problem anzugehen, kann ein Verfahren zur Authentifizierung der mobilen Vorrichtung unter Verwendung eines Backends implementiert werden, bevor eine Verbindung zum Austausch von Informationen mit der mobilen Vorrichtung geöffnet wird. Die Authentifizierung kann über einen Backend-Server erfolgen, der sich sowohl mit der mobilen Vorrichtung als auch mit der Fahrzeugvorrichtung oder dem Infotainmentsystem verbindet.
-
1 zeigt ein Blockdiagramm einer Vorrichtung, die eine Anwendung 100 gemäß einem Aspekt einer exemplarischen Ausführungsform authentifiziert. Wie in 1 dargestellt, beinhaltet die Vorrichtung zum Authentifizieren einer Anwendung 100 gemäß einer exemplarischen Ausführungsform eine Steuerung 101, eine Stromversorgung 102, einen Speicher 103, einen Ausgang 104, eine Benutzereingabe 106 und eine Kommunikationsvorrichtung 108. Die Vorrichtung zum Authentifizieren einer Anwendung 100, ist jedoch nicht auf die zuvor erwähnte Konfiguration beschränkt und kann so konfiguriert werden, dass diese zusätzliche Elemente enthält und/oder dass diese eine oder mehrere der zuvor genannten Elemente nicht umfasst. Die Vorrichtung zum Authentifizieren einer Anwendung 100 kann als Teil eines Fahrzeugs, als eigenständige Komponente, als Hybrid zwischen einer Fahrzeug- und einer nicht Fahrzeugvorrichtung oder einem anderen Computergerät implementiert sein.
-
Die Steuerung 101 steuert den gesamten Betrieb und die Funktion der Vorrichtung zum Authentifizieren einer Anwendung 100. Die Steuerung 101 kann einen oder mehrere Speicher 103, einen Ausgang 104, eine Benutzereingabe 106 und eine Kommunikationsvorrichtung 108 der Vorrichtung zum Authentifizieren einer Anwendung 100 steuern. Die Steuerung 101 kann einen oder mehrere aus einem Prozessor, einem Mikroprozessor, einer zentralen Verarbeitungseinheit (CPU), einem Grafikprozessor, anwendungsspezifischen integrierten Schaltungen (ASICs), feldprogrammierbaren Gate-Arrays (FPGAs), Zustandsmaschinen, Schaltungen und einer Kombination von Hardware-, Software- und Firmware-Komponenten beinhalten.
-
Die Steuerung 101 ist konfiguriert, um Informationen von einen oder mehreren Speichern 103, dem Ausgang 104, dem Benutzereingang 106 und der Kommunikationsvorrichtung 108 der Vorrichtung zum Authentifizieren einer Anwendung 100 zu senden und/oder zu empfangen. Die Information kann über einen Bus oder ein Netzwerk gesendet und empfangen werden oder kann direkt von/auf einem oder mehreren von dem Speicher 103, des Ausgangs 104, der Benutzereingabe 106 und der Kommunikationsvorrichtung 108 der Vorrichtung zum Authentifizieren einer Anwendung 100 bereitstellt, gelesen oder geschrieben werden. Beispiele geeigneter Netzwerkverbindungen beinhalten ein Controller Area Network (CAN), einen medienorientierten Systemtransfer (MOST), ein lokales Kopplungsstrukturnetzwerk (LIN), ein lokales Netzwerk (LAN), Drahtlosnetzwerke, wie beispielsweise Bluetooth und 802.11, und andere geeignete Verbindungen, wie z. B. Ethernet.
-
Die Stromversorgung 102 liefert Strom an eine oder mehrere der Steuerungen 101, den Speicher 103, den Ausgang 104, die Benutzereingabe 106 und die Kommunikationsvorrichtung 108 der Vorrichtung zum Authentifizieren einer Anwendung 100. Die Stromversorgung 102 kann eine oder mehrere aus einer Batterie, einem Auslass, einem Kondensator, einer Solarenergiezelle, einem Generator, einer Windenergievorrichtung, einem Wechselstromgenerator usw. beinhalten.
-
Der Speicher 103 ist zum Speichern von Informationen und zum Abrufen von Informationen konfiguriert, die von der Vorrichtung zum Authentifizieren einer Anwendung 100 verwendet werden. Die Informationen können Anwendungsinformationen beinhalten, die von Anwendungen gesendet/empfangen werden, die auf der Vorrichtung ausgeführt werden, die eine Anwendung 100 authentifiziert, Authentifizierungsinformationen, die zur Authentifizierung einer Anwendung verwendet werden, usw. Der Speicher 103 kann auch die computerausführbaren Anweisungen beinhalten, die konfiguriert sind, um von einem Prozessor ausgeführt zu werden, um die Funktionen der Vorrichtung zum Authentifizieren einer Anwendung 100 auszuführen.
-
Die Authentifizierungsinformationen können ein signiertes Zertifikat und unter anderem eine oder mehrere Informationen zur Benutzeridentifizierung, Informationen zur Anwendungsidentifizierung, einen angeforderten Dienstnamen, einen angeforderten Dienstport, ein Zertifikat der zweiten Vorrichtung und einen öffentlichen Schlüssel der zweiten Vorrichtung beinhalten.
-
Der Speicher 103 kann ein oder mehrere aus Disketten, optischen Platten, CD-ROMs (Compact Disc-Read Only Memories), magnetooptischen Platten, ROMs (Read Only Memories), RAMs (Random Access Memories), EPROMs (löschbare programmierbare Nur-Lese-Speicher), EEPROMs (elektrisch löschbare programmierbare Nur-Lese-Speicher), magnetische oder optische Karten, Flash-Speicher, Cache-Speicher und andere Arten von Medien/maschinenlesbaren Medien beinhalten, die zum Speichern von maschinenausführbaren Anweisungen geeignet sind.
-
Der Ausgang 104 gibt Informationen in einer oder mehreren Formen aus, einschließlich: visuell, hörbar und/oder haptisch. Der Ausgang 104 kann durch die Steuerung 101 gesteuert werden, um Ausgaben an den Benutzer der Vorrichtung zum Authentifizieren einer Anwendung 100 zur Verfügung zu stellen. Zusätzlich kann der Ausgang 104 einen oder mehrere aus einem Lautsprecher, einer Audiovorrichtung, einer Anzeige, einer zentral gelegenen Anzeige, einem Head-Up-Display, einer Windschutzscheibenanzeige, einer haptischen Rückmeldungsvorrichtung, einer Schwingungsvorrichtung, einer taktilen Rückmeldungsvorrichtung, einer Tap-Rückmeldungsvorrichtung, einer holografischen Anzeige, einer Instrumentenleuchte, einer Kontrollleuchte usw. beinhalten. Die dem Benutzer zur Verfügung gestellten Ausgaben können beim Ausführen einer Anwendung erzeugt werden.
-
In einem Beispiel kann der Ausgang 104 den Bildschirm anzeigen, um eine Anforderung zur Verbindung mit einer Anwendung zu akzeptieren, die zuvor nicht genehmigt wurde, oder dass die Genehmigung der Verbindungsanforderung nicht im Speicher abgelegt ist. Der Bildschirm kann Schaltflächen, Symbole oder andere grafische Funktionen beinhalten, die über die Benutzereingabe 104 ausgewählt werden können. Die grafischen Funktionen können eine oder mehrere der ersten Optionen darstellen, um stets eine Verbindung von der Anwendung zu akzeptieren, eine zweite Option, um eine Verbindung von der zweiten Anwendung für die empfangene Anforderung zu akzeptieren, und eine dritte Option, um eine Verbindung von der Anwendung für die empfangene Anforderung abzulehnen.
-
Die Benutzereingabe 106 ist dazu konfiguriert, Informationen und Befehle für die Vorrichtung zum Authentifizieren einer Anwendung 100 zur Verfügung zu stellen. Die Benutzereingabe 106 kann verwendet werden, um Benutzereingaben usw. für die Steuerung 101 bereitzustellen. Die Benutzereingabe 106 kann einen oder mehrere aus einem Touchscreen, einer Tastatur, einer Softtastatur, einer Schaltfläche, einem Bewegungsdetektor, einem Spracheingabedetektor, einem Mikrofon, einer Kamera, einem Trackpad, einer Maus, einem Touchpad usw. beinhalten. Die Benutzereingabe 106 kann konfiguriert werden, um eine Benutzereingabe zur Eingabe von Informationen zu empfangen, die durch eine Anwendung verarbeitet werden.
-
Die Kommunikationsvorrichtung 108 kann von der Vorrichtung zum Authentifizieren einer Anwendung 100 verwendet werden, um mit verschiedenen Arten von externen Vorrichtungen gemäß verschiedenen Kommunikationsverfahren zu kommunizieren. Die Kommunikationsvorrichtung 108 kann zum Senden/Empfangen von Informationen verwendet werden, einschließlich Anwendungsinformationen einer Anwendung, die auf der Vorrichtung zum Authentifizieren einer Anwendung 100 oder einer entfernten Vorrichtung ausgeführt werden. Die Kommunikationsvorrichtung 108 kann auch zum Senden/Empfangen von Authentifizierungsinformationen verwendet werden, um Anwendungen zu authentifizieren, die auf der Vorrichtung zum Authentifizieren einer Anwendung 100 oder einer entfernten Vorrichtung ausgeführt werden.
-
Die Kommunikationsvorrichtung 108 kann verschiedene Kommunikationsmodule beinhalten, wie etwa ein oder mehrere Rundfunkempfangsmodule, ein Nahbereichskommunikations-(NFC)-Modul, ein GPS-Modul und ein Drahtloskommunikationsmodul. Das Rundfunkempfangsmodul kann ein terrestrisches Rundfunkempfangsmodul beinhalten, welches eine Antenne beinhaltet, um ein terrestrisches Rundfunksignal, einen Demodulator und einen Entzerrer usw. zu empfangen. Das NFC-Modul ist ein Modul, das mit einer externen Vorrichtung kommuniziert, die sich in einer nahe gelegenen Entfernung gemäß einem NFC-Verfahren befindet. Der GPS-Empfänger ist ein Modul, das ein GPS-Signal von einem GPS-Satelliten empfängt und einen aktuellen Standort erkennt. Das drahtgebundene Kommunikationsmodul kann ein Modul sein, das Informationen über ein drahtgebundenes Netzwerk, wie etwa ein lokales Netzwerk, ein Controller Area Network (CAN) oder ein externes Netzwerk, empfängt. Das drahtlose Kommunikationsmodul ist ein Modul, das über ein drahtloses Kommunikationsprotokoll, wie beispielsweise ein IEEE 802.11-Protokoll, WiMAX-, WLAN- oder IEEE-Kommunikationsprotokoll mit einem externen Netzwerk verbunden ist und mit dem externen Netzwerk kommuniziert. Das drahtlose Kommunikationsmodul kann ferner ein Mobilkommunikationsmodul beinhalten, das auf ein Mobilkommunikationsnetzwerk zugreift und eine Kommunikation gemäß verschiedenen Mobilkommunikationsstandards, wie etwa 3.Generation (3G), 3.Generation Partnerschaftsprojekt (3GPP), Langzeitentwicklung (LTE), Bluetooth, EVDO, CDMA, GPRS, EDGE oder Zigbee, durchführt.
-
Gemäß einer exemplarischen Ausführungsform kann die Steuerung 101 der Vorrichtung zum Authentifizieren einer Anwendung 100 konfiguriert werden, um eine Anforderung einschließlich eines signierten Zertifikats der zweiten Vorrichtung zu empfangen, zu bestimmen, ob das signierte Zertifikat gültig ist, als Reaktion auf das Bestimmen, ob das signierte Zertifikat gültig ist, Anzeigen eines Bildschirms zum Annehmen einer Anforderung, wenn das signierte Zertifikat nicht genehmigt ist, und Ausführen einer Funktion, wenn die Anforderung akzeptiert wird.
-
Gemäß einer exemplarischen Ausführungsform kann die Steuerung 101 der Vorrichtung zum Authentifizieren einer Anwendung 100 konfiguriert werden, um einen Eingang zum Eintritt in einen Registrierungsmodus auf einer ersten Vorrichtung und zum Eintritt in den Registrierungsmodus für eine vorbestimmte Zeitspanne zu erkennen, während der vorbestimmten Zeitspanne, eine Authentifizierungsanwendung auf der ersten Vorrichtung mit einer zweiten Anwendung einer zweiten Vorrichtung auf einer zweiten Adresse und einem Port als Reaktion auf das Empfangen einer Anforderung auf einer ersten Adresse und einem Port von der zweiten Anwendung verbinden, eine Anforderung mit einem signierten Zertifikat der zweiten Vorrichtung empfangen, bestimmen, ob das signierte Zertifikat gültig ist, als Reaktion auf das Bestimmen, dass das signierte Zertifikat gültig ist, das Anzeigen eines Bildschirms zur Annahme einer Anforderung, wenn das signierte Zertifikat nicht genehmigt ist, und Speichern der Anforderung, wenn die Anforderung akzeptiert wird.
-
Gemäß einer exemplarischen Ausführungsform kann die Steuerung 101 der Vorrichtung zum Authentifizieren einer Anwendung 100 konfiguriert werden, um eine Authentifizierungsanwendung auf der ersten Vorrichtung mit einer zweiten Anwendung einer zweiten Vorrichtung auf einer zweiten Adresse und einem zweiten Port als Reaktion auf das Empfangen einer Anforderung auf einer ersten Adresse und einem Port von der zweiten Anwendung zu verbinden, eine Anforderung mit einem signierten Zertifikat der zweiten Vorrichtung zu empfangen, um zu bestimmen, ob das signierte Zertifikat gültig ist, als Reaktion auf das Bestimmen, dass das signierte Zertifikat gültig ist, Anzeigen eines Bildschirms zur Annahme einer Anforderung, wenn das signierte Zertifikat nicht genehmigt ist, Senden einer ersten verschlüsselten Zufallszahl und einer zweiten verschlüsselten Zufallszahl an die erste Anwendung auf der ersten Vorrichtung und die zweite Anwendung auf der zweiten Vorrichtung, Empfangen eines ersten Hash der entschlüsselten ersten Zufallszahl und eines ersten vordefinierten gemeinsamen Kontextstrings durch die Authentifizierungsanwendung, Überprüfen des empfangenen ersten Hash bei der Authentifizierungsanwendung und Schließen des Firewall-Synchronisierungsports, wenn die Überprüfung des empfangenen Hash fehlschlägt oder Öffnen eines angeforderten TLS-Ports, wenn die Überprüfung des empfangenen Hash erfolgreich ist.
-
Gemäß einer exemplarischen Ausführungsform kann die Steuerung 101 der Vorrichtung zum Authentifizieren einer Anwendung 100 konfiguriert werden, um die Authentifizierungsanwendung auf der ersten Vorrichtung mit einer zweiten Anwendung einer zweiten Vorrichtung auf der zweiten Adresse und dem Port als Reaktion auf das Empfangen der Anforderung auf der ersten Adresse und dem Port von der zweiten Anwendung durch Bereitstellen der zweiten Adresse und des Ports als Reaktion auf die Anforderung zu verbinden.
-
Die Steuerung 101 kann auch konfiguriert werden, um durch die erste Anwendung einen zweiten Hash der zweiten entschlüsselten Zufallszahl und einen zweiten gemeinsamen vordefinierten Kontextstring zu empfangen, um den zweiten Hash bei der ersten Anwendung zu überprüfen; und eine TLS PSK basierend auf dem überprüften zweiten Hash und der zweiten Zufallszahl einzurichten.
-
Die Anforderung an der ersten Adresse und dem Port aus der zweiten Anwendung kann eine Multicast Domain Name System-(mDNS)-Anforderung an einen Benutzer-Datagramm-Protokoll-(UDP)-ratenbegrenzten Port sein. Die zweite Adresse und der zweite Port können ein TCP-ratenbegrenzter Port sein.
-
2 zeigt ein Blockdiagramm einer zweiten Vorrichtung gemäß einem weiteren Aspekt einer exemplarischen Ausführungsform. Wie in 2 dargestellt, beinhaltet die zweite Vorrichtung 200 eine Steuerung 201, eine Stromversorgung 202, einen Speicher 203, einen Ausgang 204, eine Benutzereingabe 206 und eine Kommunikationsvorrichtung 208. Jedoch ist die zweite Vorrichtung 200 nicht auf die vorstehend erwähnte Konfiguration beschränkt und kann so konfiguriert sein, dass sie zusätzliche Elemente beinhaltet und/oder ein oder mehrere der vorgenannten Elemente weglässt.
-
Die zweite Apparatur 200 kann als mobile Vorrichtung, tragbares Computergerät, Tablet, Smartphone, Laptop usw. verkörpert sein. Darüber hinaus sind die Steuerung 201, die Stromversorgung 202, der Speicher 203, der Ausgang 204, die Benutzereingabe 206 und die Kommunikationsvorrichtung 208 ähnlich wie die Steuerung 101, die Stromversorgung 102, der Speicher 103, der Ausgang 104, die Benutzereingabe 106 bzw. die Kommunikationsvorrichtung 108, die ähnliche Funktionen ausführen und ähnliche Komponenten enthalten. Dadurch können wiederholte Beschreibungen dieser Elemente weggelassen werden.
-
3 zeigt ein Diagramm eines Systems zum Authentifizieren einer Anwendung gemäß einer exemplarischen Ausführungsform.
-
Unter Bezugnahme auf 3 verbindet sich eine zweite Anwendung 303, die auf einer zweiten Vorrichtung zum Authentifizieren einer Anwendung 200 ausgeführt wird, mit einem Authentifikator und einer Netzwerk-Broker-Anwendung 302, die auf der ersten Vorrichtung zum Authentifizieren einer Anwendung 100 ausgeführt wird im Vorgang 304. In diesem Beispiel kann die zweite Vorrichtung zum Authentifizieren einer Anwendung 200 ein Smartphone oder eine andere mobile Vorrichtung sein und die erste Vorrichtung zum Authentifizieren einer Anwendung 100 kann ein Zentralstapelmodul oder ein Infotainmentsystem sein.
-
Die Authentifizierungs- und Netzwerk-Broker-Anwendung 302 authentifiziert die zweite Anwendung 303 unter Verwendung eines Backend-Servers und weist die erste Anwendung 301 an, die auf einer ersten Vorrichtung ausgeführt wird und eine Anwendung 100 authentifiziert, eine Verbindung mit der zweiten Anwendung 303 zu öffnen, die auf einer zweiten Vorrichtung ausgeführt wird und eine Anwendung 200 im Vorgang 305 authentifiziert. Im Vorgang 306 tauschen die zweite Anwendung 303 und die erste Anwendung 301 Informationen über die neu geöffnete Verbindung aus.
-
4 zeigt ein Flussdiagramm zum Authentifizieren einer Anwendung gemäß einer weiteren exemplarischen Ausführungsform. Das Verfahren von 4 kann durch die Vorrichtungen zum Authentifizieren einer Anwendung 100 und 200 durchgeführt werden oder kann in ein computerlesbares Medium als Anweisungen codiert werden, die von einem Computer ausführbar sind, um das Verfahren durchzuführen.
-
Unter Bezugnahme auf 4 wird ein erstes Beispiel für den Betriebs- und Informationsfluss zwischen einem Bediener 450, einer ersten Anwendung 301 und einer zweiten Anwendung 302 auf der ersten Vorrichtung zum Authentifizieren einer Anwendung 100 und einer dritten Anwendung 303 auf einer zweiten Vorrichtung zum Authentifizieren einer Anwendung 200 während eines Registrierungsprozesses dargestellt. In diesem Fall kann die erste Anwendung 301 eine verbraucherorientierte Anwendung sein, die auf der ersten Vorrichtung zum Authentifizieren einer Anwendung 100 ausgeführt wird, die zweite Anwendung 303 kann ein Netzwerk-Broker und eine Authentifizierungsanwendung sein, die auf der ersten Vorrichtung zum Authentifizieren einer Anwendung 100 ausgeführt wird, und die dritte Anwendung 303 kann eine Verbraucheranwendung sein, die auf der zweiten Vorrichtung zum Authentifizieren einer Anwendung 200 ausgeführt wird. Die erste Vorrichtung zum Authentifizieren einer Anwendung 100 kann ein Infotainmentsystem oder ein Zentralstapelmodul sein. Die zweite Vorrichtung zum Authentifizieren einer Anwendung 200 kann eine mobile Vorrichtung, wie beispielsweise ein Smartphone, sein.
-
In 4 kann die zweite Vorrichtung zum Authentifizieren einer Anwendung 200 eine Verbindung zu der ersten Vorrichtung zum Authentifizieren einer Anwendung 100 über ein drahtloses Kommunikationsnetzwerk, wie beispielsweise ein Wi-Fi-Netzwerk im Vorgang 401, herstellen. Darüber hinaus kann ein Bediener 450 eine Taste drücken, um die erste Vorrichtung zum Authentifizieren einer Anwendung 100 in einen Registrierungsmodus im Vorgang 402 zu schalten, wodurch die zweite Anwendung 302 für einen vorbestimmten Zeitraum im Vorgang 403 in den Registrierungsmodus wechselt.
-
Während der vorbestimmten Zeitdauer kann die dritte Anwendung 303 geöffnet sein und auf der zweiten Vorrichtung 200 im Vorgang 404 ausgeführt werden. Im Vorgang 405 empfängt die zweite Anwendung 302 eine mDNS-Anfrage auf einem UDP-ratenbegrenzten Port von der dritten Anwendung 303. Im Vorgang 406 reagiert die zweite Anwendung auf den mDNS-Werbeauthentifizierungsdienst, eine IP-Adresse, die Dienst- und Übertragungssteuerungsprotokoll-(TCP)-Verbindungsinformationen. Im Vorgang 407 verbindet sich die zweite Anwendung 302 mit der dritten Anwendung 303 über die durch die mDNS-Antwort beworbene TCP-Verbindung.
-
Die dritte Anwendung 303 leitet ein öffentliches/privates Schlüsselpaar ein und signiert dann mit dem privaten Schlüssel und sendet einen öffentlichen Schlüssel mit dem signierten Zertifikat im Vorgang 408. Die zweite Anwendung 302 empfängt dann eine Anforderung mit einem signierten Zertifikat der dritten Anwendung 303 im Vorgang 409. Das signierte Zertifikat kann unter anderem Informationen zur Benutzeridentifizierung, Informationen zur Anwendungsidentifizierung, einen angeforderten Dienstnamen, einen angeforderten Dienstport, ein Zertifikat der zweiten Vorrichtung und einen öffentlichen Schlüssel der zweiten Vorrichtung beinhalten.
-
Im Vorgang 410 ermittelt die zweite Anwendung 302, ob das signierte Zertifikat gültig ist, indem sie prüft, ob das signierte Zertifikat vom Back-Office signiert wurde. Als Reaktion auf das Bestimmen, ob das signierte Zertifikat gültig ist, wird in Vorgang 411 ein Bildschirm zur Annahme der Anforderung angezeigt, wenn das signierte Zertifikat nicht genehmigt ist. Wenn beispielsweise das Zertifikat nie durch die zweite Anwendung genehmigt wurde oder eine vorherige Genehmigung der zweiten Anwendung abgelaufen ist. Die Verbindungsanforderung wird dann in Vorgang 412 geprüft und in Vorgang 413 gespeichert. Die gespeicherten Informationen können dazu verwendet werden, um bei zukünftigen Anforderungen die Genehmigung der Anwendung zu bestimmen.
-
5 zeigt ein Flussdiagramm zum Authentifizieren einer Anwendung gemäß einer weiteren exemplarischen Ausführungsform. Das Verfahren von 5 kann durch die Vorrichtungen zum Authentifizieren einer Anwendung 100 und 200 durchgeführt werden oder kann in ein computerlesbares Medium als Anweisungen codiert werden, die von einem Computer ausführbar sind, um das Verfahren durchzuführen.
-
Unter Bezugnahme auf 5 wird ein zweites Beispiel für den Betriebs- und Informationsfluss zwischen einem Bediener, einer ersten Anwendung und einer zweiten Anwendung auf der ersten Vorrichtung zum Authentifizieren einer Anwendung und einer dritten Anwendung auf einer zweiten Vorrichtung zum Authentifizieren einer Anwendung während der Ausführung eines Prozesses dargestellt. Der Bediener, die erste Anwendung und die zweite Anwendung auf der ersten Vorrichtung zum Authentifizieren einer Anwendung und die dritte Anwendung auf einer zweiten Vorrichtung zum Authentifizieren einer Anwendung sind den vorstehend in Bezug auf 1-4 beschriebenen ähnlich. Somit entfallen wiederholte Beschreibungen. Zudem sind die Vorgänge 501 und 504-511 den Vorgängen 401 und 404-411 ähnlich. Somit entfallen auch wiederholte Beschreibungen der Vorgänge 501 und 504-511.
-
Im Vorgang 512 wird ermittelt, ob die Anforderung der dritten Anwendung 303 gültig ist. Wenn die Anforderung ungültig ist, kehrt der Prozess zum Registrierungsprozess zurück. Wenn die Anforderung jedoch gültig ist, fährt der Prozess mit dem Vorgang 514 fort. Im Vorgang 514 werden von der zweiten Anwendung 302 zwei eindeutige Zufallszahlen erzeugt und im Vorgang 515 verschlüsselt. Die zweite Zufallszahl wird von der zweiten Anwendung 302 im Vorgang 516 an die erste Anwendung 301 gesendet. Im Vorgang 517 werden die erste Zufallszahl und die zweite Zufallszahl mit dem öffentlichen Schlüssel der dritten Anwendung verschlüsselt und von der zweiten Anwendung 302 mit einem vom Back-Office signierten Zertifikat der ersten Vorrichtung an die dritte Anwendung 303 gesendet.
-
Die dritte Anwendung 303 prüft das Zertifikat der ersten Vorrichtung, indem sie prüft, ob dieses vom Back Office im Vorgang 518 signiert wurde. Wenn das Zertifikat nicht vom Back-Office signiert ist, wird es von der dritten Anwendung abgelehnt. Wenn es vom Back-Office signiert ist, werden die verschlüsselten ersten und zweiten Zufallszahlen mit einem privaten Schlüssel der dritten Anwendung 303 im Vorgang 519 entschlüsselt und ein erster Hash der entschlüsselten ersten Zufallszahl und ein erster gemeinsamer vordefinierter Kontextstring an die zweite Anwendung im Vorgang 520 gesendet.
-
Im Vorgang 521 überprüft die zweite Anwendung 302 den empfangenen ersten Hash und falls die Überprüfung fehlschlägt, wird der Firewall-Synchronisierungsport aktiv geschlossen. Wenn die Überprüfung erfolgreich ist, wird ein angeforderter Transportschicht-Sicherheitsport (TLS) im Vorgang 522 für einen vorbestimmten Zeitraum (z. B. sechzig Sekunden) geöffnet, wie in einem bei der Registrierung vorgelegten Zertifikat definiert.
-
Wenn der vorher vereinbarte TLS-Schlüssel (PSK-Pre-Shared Key) nicht dem Vorgang 522 folgt, empfängt die erste Anwendung 301 einen zweiten Hash der zweiten entschlüsselten Zufallszahl und einen zweiten gemeinsamen vordefinierten Kontextstring in Vorgang 523. Anschließend wird in Vorgang 524 der zweite Hash durch die erste Anwendung 301 überprüft und eine TLS PSK-Verbindung basierend auf dem überprüften zweiten Hash und der zweiten Zufallszahl aufgebaut.
-
6 zeigt ein Flussdiagramm für ein Verfahren zur Authentifizierung einer Anwendung gemäß einer exemplarischen Ausführungsform. Das Verfahren von 6 kann durch die Vorrichtung zum Authentifizieren einer Anwendung 100 durchgeführt werden oder kann in ein computerlesbares Medium als Anweisungen codiert werden, die von einem Computer ausführbar sind, um das Verfahren durchzuführen.
-
Unter Bezugnahme auf 6 und Vorgang 610 verbindet sich eine Authentifizierungsanwendung auf der ersten Vorrichtung mit einer zweiten Anwendung einer zweiten Vorrichtung auf einer zweiten Adresse und einem zweiten Port als Reaktion auf das Empfangen einer Anforderung auf einer ersten Adresse und einem Port von der zweiten Anwendung. Im Vorgang 620 wird eine Anforderung mit einem signierten Zertifikat der zweiten Vorrichtung empfangen. Anschließend wird im Vorgang 630 ermittelt, ob das signierte Zertifikat gültig ist. Als Reaktion auf das Bestimmen, ob das signierte Zertifikat gültig ist, wird in Vorgang S650 ein Bildschirm zur Annahme der Anforderung angezeigt, wenn das signierte Zertifikat nicht genehmigt ist. Im Vorgang 640 wird eine Funktion ausgeführt, wenn die Anforderung akzeptiert wird.
-
Die hierin offenbarten Prozesse, Verfahren oder Algorithmen können von einer Verarbeitungsvorrichtung, einer Steuerung oder einem Computer, die jede vorhandene programmierbare elektronische Steuervorrichtung oder eine dedizierte elektronische Steuervorrichtung beinhalten können, geliefert/implementiert werden. Desgleichen können die Prozesse, Verfahren oder Algorithmen als Daten oder ausführbare Anweisungen durch eine Steuerung oder einen Computer in vielfältiger Weise gespeichert werden, darunter ohne Einschränkung die dauerhafte Speicherung auf nicht beschreibbaren Speichermedien, wie einem ROM, und als änderbare Information auf beschreibbaren Speichermedien, wie Disketten, Magnetbändern, CDs, RAM sowie anderen magnetischen und optischen Medien. Die Prozesse, Verfahren oder Algorithmen können auch in einem softwareausführbaren Objekt implementiert werden. Alternativ können die Prozesse, Verfahren oder Algorithmen ganz oder teilweise mit geeigneten Hardwarekomponenten, wie beispielsweise anwendungsspezifischen integrierten Schaltungen (ASICs), feldprogrammierbaren Gate Arrays (FPGAs), Zustandsmaschinen, Steuerungen oder anderen Hardwarekomponenten oder Vorrichtungen oder einer Kombination von Hardware, Software und Firmwarekomponenten verkörpert werden.
-
Es wurden oben ein oder mehrere Ausführungsbeispiele anhand der Zeichnungen beschrieben. Die oben beschriebenen Ausführungsbeispiele sollten nur im beschreibenden Sinne betrachtet werden und nicht der Begrenzung dienen. Außerdem können die Ausführungsbeispiele ohne Abweichen vom Geist und Schutzumfang des Erfindungsgedankens modifiziert werden, was in den folgenden Ansprüchen definiert ist.