-
Stand der Technik
-
Die Erfindung betrifft ein Verfahren zum Betreiben eines Kommunikationsmoduls nach dem Oberbegriff des Anspruchs 1, sowie ein Kommunikationsmodul nach dem Oberbegriff eines nebengeordneten Patentanspruchs.
-
Um die Verfügbarkeit und Sicherheit von Bussystemen in modernen Kraftfahrzeugen zu erhöhen, sind eine Vielzahl von Maßnahmen in Form von an Bussystemen angeschlossener Einheiten und/oder software-basierten Lösungen bekannt. Ziel bei diesen Lösungen ist es, zum Einen die Kommunikation zwischen den Netzelementen zu gewährleisten und zum Anderen die Funktionsfähigkeit der Netzelemente aufrechtzuerhalten.
-
Aus der
DE 10 2011 077 409 A1 ist ein Verbindungsknoten für ein Kommunikationsnetz bekannt, der zum Anschluss eines Netzelements und zum Anschluss an das Kommunikationsnetz vorgesehen ist. Der Verbindungsknoten ist dazu ausgebildet, zwischen dem Kommunikationsnetz und dem Netzelement ausgetauschte Daten zu lesen und/oder zu verändern und/oder zu sperren. Insbesondere ist der Verbindungsknoten von dem Kommunikationsnetz und von dem Netzelement baulich und/oder elektrisch unabhängig ausgeführt.
-
Offenbarung der Erfindung
-
Das der Erfindung zugrundeliegende Problem wird durch ein Verfahren zum Betreiben eines Kommunikationsmoduls nach dem Anspruch 1 sowie durch ein Kommunikationsmodul nach einem nebengeordneten Anspruch gelöst. Vorteilhafte Weiterbildungen sind in den Unteransprüchen angegeben.
-
Erfindungsgemäß wird das Versenden von zu versendenden Daten über eine Schnittstelle eines Netzelements auf Basis einer Filtervorschrift gesperrt oder zugelassen. Dieses Filtern von ausgehenden Daten ermöglicht es vorteilhaft, dass ein Fehlverhalten von Seiten des Netzelements nicht dazu führt, dass die weiteren Netzelemente des Kommunikationsnetzes von diesem Fehlverhalten wesentlich beeinträchtigt werden.
-
Ein Fehlverhalten des Netzelements kann beispielsweise durch einen Hardware-Fehler oder Software-Fehler oder aber durch eine sonstige unbeabsichtigte, fehlerhafte Systemfunktion ausgelöst werden. Insbesondere liegt das Fehlverhalten eines Netzelements außerhalb einer zuvor festgelegten Spezifikation.
-
Schadprogramme in Form von Anwendungssoftware können Auslöser für ein Fehlverhalten sein. Beispielsweise kann ein Fehlverhalten durch eine so genannte Trojaner-Software eines Dritten ausgelöst werden, wobei die Trojaner-Software in Form einer Anwendungssoftware zunächst als nicht potentiell schadhaft eingestuft wird. Auch zur Laufzeit können Komponenten der Anwendungssoftware durch entsprechende Techniken wie beispielsweise Pufferüberlauf manipuliert und zu einem Fehlverhalten des Netzelements führen. Dieses Fehlverhalten kann zur Folge haben, dass ein nicht erwartetes Kommunikationsmuster ausgelöst werden könnte.
-
Die erfindungsgemäße Lösung trägt dazu bei, die Auswirkungen des Fehlverhaltens eines Netzelements auf die weiteren Netzelemente des Kommunikationsnetzes zu reduzieren oder ganz zu verhindern. Das Netzelement überwacht sich somit im Wesentlichen über das Kommunikationsmodul selbst. Insbesondere kann ein Netzelement, dessen Anwendungssoftware manipuliert wurde, nicht dafür genutzt werden, um über das Kommunikationsnetz Angriffe auf weitere Netzelemente durchzuführen. Die Sicherheit und Zuverlässigkeit des Kommunikationsnetzes wird dadurch stark erhöht.
-
In einer weitergehenden Ausführungsform wird in einem Startbetrieb des Netzelements und/oder des Kommunikationsmoduls die Filtervorschrift von einem nicht flüchtigen Speicher in einen Speicherbereich eines Arbeitsspeichers des Kommunikationsmoduls geladen. Das Kommunikationsmodul ist derart ausgestaltet, dass in einem auf den Startbetrieb folgenden Normalbetrieb der Schreibzugriff auf den Speicherbereich, in dem die Filtervorschrift abgelegt ist, gesperrt wird. Dadurch wird vorteilhaft sichergestellt, dass die Selbstüberwachung nicht von schadhafter Anwendungssoftware manipuliert werden kann, da in dem Startbetrieb im Gegensatz zum Normalbetrieb des noch keine Anwendungssoftware ausgeführt wird, die einer dem Systembetrieb des Netzelements übergeordneten Schicht zugeordnet ist.
-
In einer weiteren vorteilhaften Ausführungsform wird vor dem Startbetrieb des Kommunikationsmoduls und/oder in dem Startbetrieb des Netzelements insbesondere aber vor dem Laden der Filtervorschrift in den Speicherbereich des Arbeitsspeichers des Kommunikationsmoduls dieser Speicherbereich gelöscht. Durch dieses explizite Löschen des Speicherbereichs für die Filtervorschrift ergibt sich eine zusätzliche Sicherung gegenüber Manipulationsversuchen. So könnte der Arbeitsspeicher je nach Ausführungsform derart ausgestaltet sein, dass er beispielsweise einen Software-Reset so übersteht, dass die zuvor in diesem Speicherbereich abgelegten Daten erhalten bleiben. Durch das explizite Löschen wird eine erhöhte Sicherheit gegen etwaige Manipulationsversuche erreicht.
-
In einer Ausführungsform der Erfindung umfasst die Filtervorschrift einen oder mehrere Filterparameter. Der oder einer der Filterparameter ist beispielsweise eine oder mehrere zu erkennende Zieladressen und/oder zu erkennende Bereiche von Zieladressen und/oder eine Bitmaske und/oder eine zu erkennende Nachrichtenkennung. Der Filterparameter wird auf die die zu versendenden Daten begleitende Zusatzinformationen angewendet. Dadurch wird vorteilhaft die Möglichkeit geschaffen, ein Kommunikationsmuster für das Netzelement festzulegen. Insbesondere kann die Anwendungssoftware, die auf dem Netzelement läuft, durch ein festes Kommunikationsmuster für ausgehende Daten vorteilhaft in Ihrer Sendeaktivität begrenzt werden. Dieses festgelegte Kommunikationsmuster ergibt sich aus einer oder mehrerer Filtervorschriften und wird im Wesentlichen abhängig von der Spezifikation der Anwendungssoftware definiert und unabhängig von der Anwendungssoftware zum Zugriff für die Anwendung durch das Kommunikationsmodul gespeichert.
-
In einer vorteilhaften Weiterbildung wird eine zu versendende Dateneinheit durch das Kommunikationsmodul mittels einer Filtervorschrift erkannt, wobei die Filtervorschrift mittels eines weiteren Filterparameters vorschreibt, ob das Versenden der erkannten Dateneinheit gesperrt oder zugelassen wird. Hieraus ergibt sich vorteilhaft, dass sowohl Positiv- als auch Negativlisten für anhand von anderen Filterparametern erkannte Dateneinheiten definiert werden können. Daraus ergeben sich weitere Freiheitsgrade bei der Definition von Filtervorschriften.
-
Für die Erfindung wichtige Merkmale finden sich ferner in den nachfolgenden Zeichnungen, wobei die Merkmale sowohl in Alleinstellung als auch in unterschiedlichen Kombinationen für die Erfindung wichtig sein können, ohne dass hierauf nochmals explizit hingewiesen wird.
-
Nachfolgend werden beispielhafte Ausführungsformen der Erfindung unter Bezugnahme auf die Zeichnung erläutert. In der Zeichnung zeigen:
-
1 ein schematisches Blockschaltbild eines Netzelements; und
-
2 ein schematisches Ablaufdiagramm eines Verfahrens zum Betreiben eines Kommunikationsmoduls.
-
1 zeigt ein schematisches Blockdiagramm 2 eines Netzelements 4. Das Netzelement 4 umfasst ein Kommunikationsmodul 6. Des Weiteren ist dem Kommunikationsmodul 6 des Netzelements 4 eine Schnittstelle 8 zugeordnet, über die die Kommunikation mit einem Kommunikationsnetz 10 bzw. einem weiteren Netzelement des Kommunikationsnetzes 10 möglich ist. Das Kommunikationsmodul 6 des Netzelements 4 ist insbesondere dazu ausgebildet, Daten an das Kommunikationsnetz 10 zu versenden wie auch zu empfangen. In 1 sind keine Elemente abgebildet, die das Empfangen von Daten aus dem Kommunikationsnetz 10 betreffen. Selbstverständlich kann das Kommunikationsnetz 10 auch hierfür ausgebildet sein. Das Kommunikationsnetz 10 umfasst weitere Netzelemente.
-
Selbstverständlich handelt es sich bei der in 1 dargestellten Ausführungsform des Netzelements 4 nur um eine beispielhafte Ausführungsform. Alternativen zu der dargestellten Ausführungsform werden im Folgenden jeweils erläutert. Insbesondere die Zuordnung einzelner Elemente des Netzelements 4 zu dem Kommunikationsmodul 6 kann unterschiedlich ausgeführt sein.
-
Das Netzelement 4 kann insbesondere als Mikrokontroller ausgeführt sein oder einen Mikrokontroller umfassen, der eine Prozessoreinheit 12 und einen Arbeitsspeicher 14 umfasst. Des Weiteren umfasst der Mikrokontroller einen Datenbus 16, über den der Prozessor 12 auf den Arbeitsspeicher 14 zugreifen kann.
-
Das Netzelement 4 umfasst des Weiteren ein Speicherelement 18, in dem eine oder mehrere Filtervorschriften abgelegt sind. Das Speicherelement 18 ist in nicht gezeigter Form vor einem willkürlichen Überschreiben beispielsweise durch Anwendungssoftware geschützt. Das Speicherelement 18 wird auch als nicht flüchtiger Speicher bezeichnet. Beispielsweise kann das Speicherelement 18 durch ein nicht gezeigtes Hardware-Sicherheitsmodul (HSM; Hardware Security Module) vor einem schreibenden Zugriff ausgehend von dem Datenbus 16 geschützt sein.
-
Eine Schnittstelle 20 stellt die Verbindung zwischen dem Datenbus 16 und dem Kommunikationsmodul 6 her. In einem Normalbetrieb des Netzelements 4 und/oder des Kommunikationsmoduls 6 lädt der Prozessor 12 auszuführende Programme oder Teile davon in den Arbeitsspeicher 14, um Daten zu generieren, die zum Versenden an ein oder mehrere weitere Netzelemente des Kommunikationsnetzes 10 vorgesehen sind. In dem Normalbetrieb werden die zu versendenden Daten nach Speicherung im Arbeitsspeicher 14 an die Schnittstelle 20 weitergegeben, die gemäß einem Pfeil 22 die zu versendenden Daten in einen Speicherbereich 24 eines Arbeitsspeichers 26, der dem Kommunikationsmodul 26 zugeordnet ist, ablegt.
-
In einem Startbetrieb des Kommunikationsmoduls 6 und/oder des Netzelements 4, auf den der Normalbetrieb folgt, wird zumindest eine Filtervorschrift aus dem Speicherelement 18 über die Schnittstelle 20 gemäß einem Pfeil 28 einem Block 30 zugeführt. Der Block 30 ist derart ausgeführt, dass er die zumindest eine Filtervorschrift gemäß einem Pfeil 32 einem Speicherbereich 34 des Arbeitsspeichers 26 in dem Startbetrieb des Netzelements 4 bzw. im Startbetrieb des Kommunikationsmoduls 6 nur einmal zuführt bzw. lädt.
-
Bereits nach dem einmaligen Beschreiben des Speicherbereichs 34 mit der zumindest einen Filtervorschrift aus dem Speicherelement 18 durch den Block 30 in dem Startbetrieb, insbesondere in dem auf den Startbetrieb folgenden Normalbetrieb, wird durch den Block 30 verhindert, dass auf den Speicherbereich 34 schreibend zugegriffen wird. Mithin ist der Schreibzugriff auf den Speicherbereich 34, in dem die zumindest eine Filtervorschrift abgelegt ist, gesperrt. Alle Schreibzugriffanfragen, die gemäß dem Pfeil 28 den Block 30 erreichen, werden deshalb abgeblockt.
-
In einer alternativen Ausführungsform kann das Speicherelement 18 nicht an den Datenbus 16 angeschlossen sein, sondern dem Kommunikationsmodul 6 zugeordnet sein und beispielsweise dem Block 30 gemäß dem Pfeil 28 zugeordnet werden.
-
Vor dem Startbetrieb und/oder in dem Startbetrieb, jedoch insbesondere vor dem Laden der zumindest einen Filtervorschrift in den Speicherbereich 34 des Arbeitsspeichers 26 des Kommunikationsmoduls 6 wird der Speicherbereich 34 durch den Block 30 gelöscht.
-
Der Block 30 kann entweder als Hardware oder als Software ausgeführt sein. Der Schutz gegen ein erneutes Überschreiben des Speicherbereichs 34 des Arbeitsspeichers 26 kann beispielsweise durch eine hardware-implementierte Funktion des Setzen eines vor weiteren Zugriffen geschützten Bits realisiert werden, wobei der Block 30 abhängig von dem einmal gesetzten Bit den Schreibzugriff zulässt oder blockiert.
-
Alternativ kann die zuvor genannte Funktion des Blocks 30 auch als Betriebssoftware für das Kommunikationsmodul 6 ausgeführt sein, wobei der Zugriff während der Laufzeit der Betriebssoftware des Kommunikationsmoduls 6 gesperrt ist, und wobei der Zugriff auf den in einem Speicher abgelegten Programmcode, der die Betriebssoftware darstellt, gesperrt ist.
-
Der Startbetrieb des Netzelements 4 ist dadurch gekennzeichnet, dass der Prozessor 12 nach einem Hardware- oder Software-Reset oder aber nach einem Einschalten des Netzelements 4 noch keine Anwendersoftware ausführt. In dem auf den Startbetrieb folgenden Normalbetrieb wird hingegen Anwendungssoftware von der Prozessoreinheit 12 ausgeführt. Anwendungssoftware zeichnet sich dadurch aus, dass sie nicht die grundlegenden Betriebsfunktionen des Netzelements 4 und/oder des Kommunikationsmoduls 6 bereitstellt, sondern übergeordnete Gerätefunktionen betrifft. In dem Startbetrieb wird nur Betriebssoftware und keine Anwendungssoftware ausgeführt, wobei die Betriebssoftware in dem Startbetrieb grundsätzlich nicht durch Anwendungssoftware manipulierbar ist, da im Startbetrieb keine Anwendungssoftware ausgeführt wird.
-
Die zumindest eine in dem Speicherbereich 34 abgelegt Filtervorschrift wird gemäß einem Pfeil 36 einem Filterblock 40 zugeführt. In dem Filterblock 40 werden gemäß einem Pfeil 42 die zu versendenden Daten aus dem Speicherbereich 24 des Arbeitsspeichers 26 zugeführt. Der Filterblock 40 des Kommunikationsmoduls 6 ist derart ausgebildet, dass das Versenden der zu versendenden Daten aus dem Speicherbereich 24 des Arbeitsspeichers 26 über die Schnittstelle 8 auf Basis der zumindest einen Filtervorschrift aus dem Speicherbereich 34 des Arbeitsspeichers 26 gesperrt oder zugelassen wird. Selbstverständlich können die Speicherbereiche 24 und 34 in unterschiedlichen Arbeitsspeichern angeordnet sein.
-
Eine Filtervorschrift kann einen oder mehrere Filterparameter umfassen. Ein Filterparameter kann beispielsweise eine oder mehrere zu erkennende Zieladressen und/oder zu erkennende Bereiche von Zieladressen und/oder eine Bitmaske und/oder eine zu erkennende Nachrichtenkennung sein.
-
Der Block 40 sorgt dafür, dass einer oder mehrere Filterparameter auf eine zu versendende Dateneinheit begleitende Zusatzinformationen angewendet werden. Diese Zusatzinformationen können beispielsweise eine CAN-Identität und/oder eine Ethernet-Adresse und/oder eine Flexray-Identität und/oder eine IP-Adresse (Internet Protokoll Adresse) sein. Im Falle einer Bitmaske wird die Zusatzinformation mit der Bitmaske UND-verknüpft. Selbstverständlich können mehrere Filterparameter eine Filtervorschrift zeitlich nacheinander auf die Zusatzinformation angewendet werden.
-
Durch die Anwendung zumindest eines Filterparameters auf eine Zusatzinformation erkennt der Block 40 eine konkrete zu versendende Dateneinheit. Diese erkannte zu versendende Dateneinheit wird nun anhand eines weiteren Filterparameters gesperrt oder zum Versenden zugelassen, wobei dieser weitere Filterparameter entweder die Sperrung der erkannten Dateneinheit oder die Zulassung zum Versand der erkannten Dateneinheit vorschreibt. Ergibt die Anwendung einer Filtervorschrift auf eine zu versendende Dateneinheit, dass der Versand zugelassen wird, so übergibt der Filterblock 40 gemäß einem Pfeil 44 die zu versendende Dateneinheit einem Protokollblock 50. Der Protokollblock 50 sorgt gemäß einem Pfeil 52 für die Übergabe der zu versendenden Daten an die Schnittstelle 8.
-
Die 2 zeigt ein schematisch dargestelltes Ablaufdiagramm 54. Gemäß einem Block 56 wird das Kommunikationsmodul 6 initialisiert bzw. gestartet, was dem Startbetrieb entspricht.
-
Gemäß einem Block 58 werden die Filtervorschriften in den Speicherbereich 34 geladen. Der Block 58 ist dem Startbetrieb zugeordnet. In dem Startbetrieb werden die Filtervorschriften aus dem Speicherelement 18 gelesen und über den Block 30 in den Speicherbereich 34 geladen. In einer Ausführungsform kann der Vorgang gemäß dem Block 56 in Hardware realisiert sein, so dass der Block 30 die Filtervorschriften aus dem Speicherelement 18 mittels eines Direktzugriffs über den Datenbus 16 in den Speicherbereich 34 des Arbeitsspeichers 26 des Kommunikationsmoduls 6 lädt. In einer anderen Ausführungsform kann dieses Laden der Filtervorschriften auch als Software gemäß dem Block 30 in dem Kommunikationsmodul 6 ausgeführt sein. Nach dem Laden der Filtervorschriften aus dem Speicherelement 18 sperrt der Block 30 jeden weiteren Schreibzugriff auf den Speicherbereich 34 des Arbeitsspeichers 26.
-
Gemäß einem Abfrageblock 60 wird während des Startbetriebs abgefragt, ob der Filterblock 40 bereits aktiv ist. Ist der Filterblock 40 bereits aktiv, so wird gemäß dem Block 30 ein erneuter Schreibzugriff auf den Speicherbereich 34 abgelehnt und die einmal geladenen Filtervorschriften im Speicherbereich 34 werden beibehalten. Diese Funktion der Ablehnung eines erneuten Schreibzugriffs entspricht einem gezeigten Block 62.
-
Ist der Filterblock 40 jedoch noch nicht aktiv, so erfolgt gemäß einem Block 64 die Aktivierung des Filterblocks 40, der die zu 1 beschriebenen Funktionen durchführt. Nach erfolgreicher Aktivierung des Filterblocks 40 gemäß dem Block 64 wird gemäß einem Block 66 in den Normalbetrieb übergegangen, so dass der Filterblock 40 die zu versendenden Daten gemäß der Filtervorschrift sperrt oder zum Versand freigibt.
-
Erfolgt nun gemäß einem Block 68 eine Software-Reset-Anfrage, so sorgt der Block 30 gemäß einem in 2 gezeigten Block 70 dafür, dass der Speicherbereich 34 des Arbeitsspeichers 26 des Kommunikationsmoduls 6 vor einem Neustart des Kommunikationsmoduls 6 gelöscht wird.
-
Alternativ oder zusätzlich zu dem Block 70 kann ein weiterer nicht gezeigter Block gemäß dem Block 70 zwischen den Block 56 und den Block 58 angeordnet sein, um beispielsweise nach einem durch Hardware-Reset oder Software-Reset ausgelösten Start des Kommunikationsmoduls 6 des Speicherbereich 34 des Arbeitsspeichers 26 explizit zu löschen. Nach einem Hardware-Reset beginnt der in 2 gezeigte Verfahrensablauf bei dem Block 56. Ein Hardware-Reset ist mit einer zumindest kurzen Stromzufuhrunterbrechung verbunden, was grundsätzlich zu einem Verlust des Inhalts eines flüchtigen Arbeitsspeichers führt. Bei einem Software-Reset hingegen kann je nach dessen Ausführungsform ein Speicherinhalt eines flüchtigen Arbeitsspeichers erhalten bleiben.
-
Ein zusätzlicher Filterparameter einer Filtervorschrift kann vorschreiben, dass, wenn der Block 40 eine zu sperrende Dateneinheit erkannt hat, das Kommunikationsmodul 6 oder aber das Netzelement 4 einen weiteren Verfahrensschritt durchführt. Dieser weitere Verfahrensschritt kann beispielsweise eine Diagnosefunktion sein, wobei der Block 40 die erkannte gesperrte Dateneinheit in einen nicht gezeigten Speicher schreibt. Ein anderer weiterer Verfahrensschritt kann in diesem Fall beispielsweise eine Benachrichtigung weiterer Netzelemente betreffen, wobei diese Benachrichtigung bevorzugt von dem Kommunikationsmodul 6 realisiert wird.
-
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
-
- DE 102011077409 A1 [0003]