-
Die Erfindung betrifft ein Verfahren zum Erzeugen eines computerausführbaren Programms, das zur sicheren Kommunikation zwischen einem einem Benutzer zugeordneten Computer und einem über ein Netzwerk erreichbaren ersten Zentralrechner eingerichtet ist, wobei dem Programm ein dem Benutzer eindeutig zugeordnetes Geheimnis eingepflegt wird, zu dem ein eindeutiges Gegenstück existiert, mit Hilfe dessen die Authentizität des Benutzers verifiziert wird. Die Erfindung betrifft des Weiteren ein Verfahren zur gesicherten Kommunikation zwischen einem auf einem einem Benutzer zugeordneten Computer und einem Zentralrechner.
-
Verfahren der eingangs genannten Art sind im Stand der Technik bekannt. Im Zuge der fortschreitenden Implementierung von Funktionen in Computer, insbesondere mobile Computer oder Mobiltelefone, zum Beispiel Smartphones, werden zunehmend Endgeräte-Server-Lösungen angeboten, mit deren Hilfe ein Benutzer von überall die entsprechende Funktion ausführen kann. Bei vielen Anwendungen ist es äußerst wichtig, einen Benutzer eindeutig identifizieren zu können. Eine solche Anwendung ist beispielsweise ein über ein Mobiltelefon ausgeführter Bezahlvorgang.
-
Zur Authentifizierung der Benutzer sind im Stand der Technik eine Vielzahl von unterschiedlichen Lösungen bekannt. Eine bekannte Authentifizierungsmethode ist, die sich authentifizierende Instanz, beispielsweise ein auf einem Smartphone ausgeführtes Programm, mit einem Geheimnis auszustatten, also ein eindeutiges Merkmal, das dem entsprechenden Programm auf dem Smartphone oder dem entsprechenden Smartphone zugeordnet ist, zu dem eine prüfende Instanz ein Gegenstück besitzt, mit Hilfe dessen die Zuordnung von Geheimnis zu Computer bzw. Benutzer überprüfbar ist. Hierzu sind verschiedene Verfahren bekannt, beispielsweise, dass als Gegenstück dasselbe Geheimnis vorliegt oder eine andere an dieses Geheimnis individuell, ggf. ausschließlich, und eng gekoppelte Information.
-
Die
EP 2 216 742 A1 offenbart ein Verfahren zur Zahlung eines Geldbetrags über ein ein Chipmodul enthaltendes mobiles Endgerät. Das Verfahren umfasst ein Bestimmen einer Zahlungsquelle auf dem mobilen Endgerät, Bestätigen von die bestimmte Zahlungsquelle umfassenden Zahlungsdaten durch Eingeben einer zu einer Vermittlungszentrale gehörenden Kennung, Elektronisches Signieren der Zahlungsdaten und der verschlüsselten Kennung mittels eines auf dem Chipmodul abgelegten Schlüssels, Übermitteln der signierten Zahlungsdaten und der signierten, verschlüsselten Kennung an die Vermittlungszentrale, und Übermitteln einer Nachricht von der Vermittlungszentrale an ein zur bestimmten Zahlungsquelle gehörendes Zahlungsinstitut, den Geldbetrag von der Zahlungsquelle abzubuchen.
-
Derartige Dienstleistungen und Kommunikationen werden auch vermehrt in Kraftfahrzeugen eingesetzt. So gibt es einerseits Kommunikationen zwischen einem Computer des Benutzers und dem Kraftfahrzeug, andererseits auch Kommunikationen zwischen dem Kraftfahrzeug und einem Zentralrechner. Dabei ist es von großer Bedeutung, dass eine eindeutige Authentifizierung des Benutzers oder des Rechners vorgenommen werden kann. Teilweise lassen sich aufgrund solcher Kommunikation sicherheitskritische Operationen im Fahrzeug auslösen bzw. durchführen. Aus Sicherheitsgründen ist es dann nicht vertretbar, dass die ausführende Instanz nicht weiß, von welchem Programm oder welchem Benutzer die kritische Operation ausgelöst wird.
-
Die zunehmende Implementierung derartiger Funktionen in Mobiltelefone und dergleichen ist offensichtlich ein lohnenswertes Angriffsziel für Hacker. Diese versuchen, die Sicherheitsmechanismen zu überwinden, um entweder eine falsche Identität annehmen oder die Kontrolle über ein Programm übernehmen zu können, wodurch die Kontrolle über beispielsweise die kritischen Funktionen übernommen wird. So könnte ein Hacker beispielsweise ein fremdes Kraftfahrzeug sabotieren.
-
Die Hacker wenden unter anderem als Methode an, die Programme zu dekompilieren und in den Quellcode der Programme nach der Dekompilierung das Geheimnis zu suchen und zu duplizieren. Ein vom Hacker ausgeführtes Programm ist dann für den Zentralrechner oder das Kraftfahrzeug, mit dem kommuniziert wird, ununterscheidbar von dem im Besitz des Benutzers befindlichen Computer. Ein auf die Kompilierung und Codeanalyse basierender Angriff läuft in etwa wie folgt ab: Der Angreifer erlangt Zugriff auf den Programmcode, beispielsweise indem er den Programmcode von einem Zentralrechner herunterlädt, der Angreifer dekompiliert das Programm, der Quellcode des Programms wird einer Codeanalyse unterzogen und die Codestelle, die das Geheimnis enthält, wird identifiziert, das Geheimnis wird ausgelesen. Die Codeanalyse stellt dabei den aufwendigsten Abschnitt dar. Um diesen Schritt weiter zu erschweren, ist es im Stand der Technik bekannt ist, Klartextcode mit Hilfe von Obfuscatoren unlesbar zu machen. Dies ist jedoch nur eine geringe zusätzliche Erschwernis und keine Maßnahme, die ein Geheimnis sicher schützen kann.
-
Weitere Möglichkeiten sind, dass das Herunterladen solcher Programme nur von authentifizierten Personen gestattet wird, was jedoch aufgrund der aufwendigen Authentifizierungsmaßnahmen eine große Einstandshürde darstellt und damit die Akzeptanz seitens der Benutzer deutlich verringert.
-
Eine weitere Möglichkeit besteht darin, jeder Programminstanz ein eigenes Geheimnis beizufügen, sodass durch Codeanalyse der entsprechenden Programminstanz das Geheimnis offengelegt werden kann. Wenn Schlupflöcher in dem Sicherheitssystem des Betriebssystems des Computers des Benutzers vorhanden sind, kann Schadsoftware eingeschleust werden, die die Kontrolle über die Programminstanzen übernehmen kann und damit ein Auslesen des Geheimnisses ermöglicht.
-
Aufgabe der Erfindung ist es daher, Verfahren der eingangs genannten Art dahingehend zu verbessern, dass die Sicherheit der Kommunikation und der Authentizierung eines Benutzers erhöht, die Gefahr von erfolgreichen Hackerangriffen verringert und damit die Sicherheit der Ausführung kritischer Funktionen gesteigert wird.
-
Die Aufgabe wird gelöst durch ein Verfahren zum Erzeugen eines computerausführbaren Programms gemäß Anspruch 1 sowie ein Verfahren zur gesicherten Kommunikation gemäß Anspruch 10. Weitere Ausgestaltungen der erfindungsgemäßen Verfahren sind Gegenstand der Unteransprüche.
-
Ein Verfahren zum Erzeugen eines computerausführbaren Programms und einem über ein Netzwerk erreichbaren ersten Zentralrechner sieht vor, dass dem Programm ein einem Benutzer des Programms eindeutig zugeordnetes Geheimnis eingepflegt wird. Dieses Geheimnis wird mit Hilfe eines eindeutigen Gegenstücks geprüft, wodurch die Authentizität des Benutzers verifiziert werden kann. Das Programm wird auf einem einem Benutzer zugeordneten Computer ausgeführt. Der Computer ist insbesondere ein Mobilcomputer, insbesondere ein Smartphone. Als Netzwerk können verschiedene Arten von Netzwerk in Betracht kommen, beispielsweise das Internet, W-LAN, Bluetooth, NFC und dergleichen. Das Geheimnis ist mittelbar oder unmittelbar eindeutig dem Benutzer zuzuordnen. Das Geheimnis kann benutzerbezogen sein oder das Geheimnis kann dem Computer zugeordnet sein. Das Gegenstück zu dem Geheimnis kann auf dem Zentralrechner oder auf einem weiteren von dem Zentralrechner ansprechbaren Rechner abgelegt sein. Das Gegenstück kann eine Wiederholung des Geheimnisses sein, es kann aber auch eine mit dem Geheimnis eng gekoppelte Information sein.
-
Erfindungsgemäß wird vorgesehen, dass das Geheimnis in einen Quellcode des Programms eingepflegt wird und mit dem Quellcode zusammen in ein ausführbares Format übersetzt bzw. kompiliert wird. Auf diese Weise ist das Geheimnis in das ausführbare Programm direkt integriert und zwei funktionsgleiche Programme mit unterschiedlichen Geheimnissen weisen eine sehr unterschiedliche Struktur auf. Dadurch wird die Dekompilierung des Programms und die Identifizierung des Geheimnisses im Programm wesentlich erschwert, da durch eine stark abweichende Struktur der Programme voneinander eine Identifikation von unterschiedlichen Bereichen nicht mehr möglich ist.
-
Die Kopplung des Geheimnisses an das computerausführbare Programm ist durch das erfindungsgemäße Verfahren dergestalt, dass die computerausführbaren Programme einen stark unterschiedlichen Programmcode aufweisen. Mit Hilfe des erfindungsgemäßen Verfahrens wird das computerausführbare Programm also erst nach der Anfrage und der individuellen Zuordnung des Programms zu einem Benutzer vorgenommen. Die Programme liegen daher auf dem ersten Zentralrechner unkompiliert vor und werden für jeden Abruf eines Programmes für einen Computer eines Benutzers neu kompiliert.
-
Gemäß einer ersten möglichen weiteren Ausgestaltung des erfindungsgemäßen Verfahrens kann vorgesehen sein, dass das Geheimnis an einer oder mehreren vorgegebenen Stellen des Quellcodes eingebettet wird. Auf diese Weise wird die Erzeugung des zu kompilierenden Quellcodes einfach gestaltet, da nur jeweils an der einen oder den mehreren Stellen das Geheimnis oder Teile des Geheimnisses eingebettet werden müssen.
-
Alternativ dazu kann parallel an wenigstens zwei Stellen im Quellcode funktionsneutrale Veränderungen vorgenommen werden, aus denen sich das Geheimnis ergibt. Somit können beispielsweise verschiedene Berechnungsmethoden, die gegeneinander austauschbar sind, verwendet werden. Des Weiteren ist es möglich, Variablen unterschiedlich zu bezeichnen. Auf diese Weise lässt sich durch Abgleich der jeweiligen Änderungen ein eindeutiger Änderungsvektor erzeugen, der auch einem Geheimnis im Sinne dieser Erfindung entsprichen kann.
-
Gemäß einer weiteren Ausgestaltung des erfindungsgemäßen Verfahrens kann vorgesehen sein, dass das erzeugte Programm vom Benutzer heruntergeladen und auf seinem Computer installiert wird. Auf diese Weise kann das eindeutig identifizierbare Programm mit einem Computer des Benutzers eindeutig verknüpft werden.
-
Gemäß einer weiteren Ausgestaltung des erfindungsgemäßen Verfahrens kann vorgesehen sein, dass der Quellcode vor dem Übersetzen obfusciert wird. Dies verringert die Lesbarkeit des Codes weiter.
-
In einer weiteren möglichen Ausgestaltung kann vorgesehen sein, dass die Obfuscationsvorschrift individuell ausgewählt wird. Die Obfuscationsvorschrift kann damit das Geheimnis ganz oder teilweise enthalten.
-
Gemäß einer weiteren möglichen Ausgestaltung des erfindungsgemäßen Verfahrens kann vorgesehen sein, dass das Verfahren erst nach einer von einem dem Benutzer eindeutig zugeordneten, von seinem Computer aus durchgeführten Installationsanfrage ausgeführt wird. Somit kann das Geheimnis Informationen über den Computer des Benutzers enthalten, was die Zuordnung und die Auswahl des Geheimnisses weiter randomisiert.
-
Gemäß einer weiteren möglichen Ausgestaltung der Erfindung kann vorgesehen sein, dass das Verfahren auf einem zweiten Zentralrechner ausgeführt wird. Der erste Zentralrechner, mit dem eine sichere Kommunikation durchgeführt wird, kann dann von dem zweiten Zentralrechner, von dem das Programm heruntergeladen und installiert wird, abweichen. Auf diese Weise lässt sich das Angebot an unterschiedlichen Programmen zentralisieren, was die Verwaltung der Programme vereinfacht.
-
Gemäß einer weiteren möglichen Ausgestaltung des erfindungsgemäßen Verfahrens kann vorgesehen sein, dass zur Erstellung des Geheimnisses Zufallszahlen und/oder Informationen des individuellen Computers verwendet werden. Dies erschwert die Rekonstruktion des Geheimnisses aus anderen Fakten.
-
Ein erster unabhängiger Gegenstand der Erfindung betrifft ein Verfahren zur gesicherten Kommunikation zwischen einem auf einem einem Benutzer zugeordneten Computer, insbesondere Mobilcomputer, insbesondere Smartphone ausgeführten Programm über ein Netzwerk und einen Zentralrechner, wobei das Programm ein Geheimnis aufweist und ein Gegenstück zu dem Geheimnis existiert, mit Hilfe dessen der Zentralrechner den Benutzer authentifiziert.
-
Erfindungsgemäß ist vorgesehen, dass das Programm nach dem Verfahren nach einem der vorgenannten Aspekte der vorgenannten Erfindung erzeugt ist. Auf diese Weise ist das Geheimnis gut vor Angriffen von Hackern geschützt und eine sichere Kommunikation gewährleistet.
-
Die Erfindung wird anhand eines Ausführungsbeispiels erläutert. Dabei zeigt die einzige Figur ein schematisches Ablaufprogramm zum erfindungsgemäßen Erzeugen eines Programms.
-
In einem ersten Schritt stellt ein Benutzer eine Installationsanfrage an einen Zentralrechner.
-
In einem zweiten Schritt wird der Benutzer anhand des anfragenden Computers identifiziert.
-
In einem dritten Schritt wird ein Geheimnis erzeugt und mit der Identität des Benutzers bzw. des dem Benutzer gehörigen Computers verknüpft.
-
In einem vierten Schritt wird das Geheimnis in einem Quellcode eingebettet. Dies kann an einer Stelle oder verteilt geschehen, durch Einpflanzen des Geheimnisses oder durch funktionsneutrale Änderung des Quellcodes in eindeutiger Weise.
-
In einem fünften Schritt wird der Quellcode kompiliert und ein computerlesbares Format des Programms erzeugt.
-
In einem sechsten Schritt wird das erzeugte computerlesbare Programm auf den Computer des Benutzers übertragen.
-
In einem siebten Schritt wird das übertragene Programm auf dem Computer des Benutzers installiert. Gegebenenfalls können in diesem Schritt noch Zertifikate installiert werden, die ebenfalls der Authentifizierung des Benutzers dienen.
-
Das erfindungsgemäße Verfahren eignet sich zur besonderen Anwendung auf Programme für Smartphones. Die gesicherte Kommunikation findet dann unter Ausnutzung von Schnittstellen des Smartphones statt, wobei sich die Programme bei der Kommunikation mit den anderen Systemen mit Hilfe des Geheimnisses identifizieren und authentifizieren müssen. Die Zentralrechner, auf denen entsprechende Funktionen ausgeführt werden bzw. mit denen die Smartphones kommunizieren, können von dem Zentralrechner abweichen, der zur Verteilung der Programme herangezogen wird.
-
Die Programme von unterschiedlichen Benutzern haben zwar dieselbe Funktionalität, unterscheiden sich jedoch im Code hinreichend stark, dass es für einen Hacker nahezu unmöglich ist, das Geheimnis zu extrahieren.
-
In einem Zwischenschritt kann der Quellcode mit Hilfe eines Obfuscators unlesbar gemacht werden. Der Obfuscator kann individualisierungsfähig sein, sodass das Geheimnis in der Individualisierung des Obfuscators bzw. der Obfuscatorvorschrift liegt. Zur Individualisierung des Obfuscators kann ein Zufallsgenerator herangezogen werden, dessen erzeugte Zufallszahlen genutzt werden.
-
Ein für die Authentifizierung notwendiges nicht-geheimes Gegenstück zum Geheimnis kann von dem Programme anbietenden Zentralrechner signiert und in Form eines Zertifikats in dem Programm abgelegt werden.
-
ZITATE ENTHALTEN IN DER BESCHREIBUNG
-
Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
-
Zitierte Patentliteratur
-