-
Die vorliegende Erfindung betrifft das Gebiet der Kommunikationstechnik, insbesondere der unidirektionalen Weiterleitung von Daten von einem ersten Kommunikationsnetzwerk in ein zweites Kommunikationsnetzwerk.
-
Die Offenlegungsschrift
DE 10 2015 213 400 A1 offenbart ein Verfahren zur unidirektionalen Datenübertragung von einem sicherheitskritischen System zu einem unsicheren System mittels einer Datendiode.
-
Insbesondere für sicherheitsrelevante Anwendungen, bei welchen Daten in unterschiedlichen Sicherheitsdomänen verarbeitet bzw. gespeichert werden sollen, ist es oft vorteilhaft, eine unidirektionale Weiterleitung von Daten zu ermöglichen. Hierfür können beispielsweise Datendioden eingesetzt werden.
-
Herkömmlich Datendioden verwenden dabei eine Glasfaser zur optischen Übertragung der Daten in Vorwärtsrichtung. Derartige Datendioden sind jedoch durch die erforderlichen optischen Hardwarekomponenten unflexibel. Ferner existiert in derartigen Datendioden üblicherweise kein Rückkanal, um eine Rückmeldung über eine erfolgreiche Übertragung der Daten zu signalisieren.
-
Es ist daher eine Aufgabe der vorliegenden Erfindung, ein effizientes Konzept zum unidirektionalen Weiterleiten von Daten zu schaffen.
-
Diese Aufgabe wird durch die Merkmale der unabhängigen Ansprüche gelöst. Vorteilhafte Weiterbildungsformen sind Gegenstand der abhängigen Patentansprüche, der Beschreibung sowie der Zeichnungen.
-
Die Erfindung basiert auf der Erkenntnis und schließt diese mit ein, dass die obige Aufgabe durch ein Filterelement gelöst werden kann, welches Daten unidirektional von einem ersten Speicherbereich in einen zweiten Speicherbereich übertragen kann. Ein Empfang von Datenpaketen, welche jeweils Daten umfassen, erfolgt dabei durch eine erste Netzwerkschnittstelle, welche auf den ersten Speicherbereich zugreifen kann. Nach der Übertragung der Daten von dem ersten Speicherbereich in den zweiten Speicherbereich durch das Filterelement erfolgt ein Aussenden weiterer Datenpakete, welche jeweils die Daten umfassen, durch eine zweite Netzwerkschnittstelle, welche auf den zweiten Speicherbereich zugreifen kann.
-
Durch das Filterelement wird mithin eine Filterung von Datenpaketen dahingehend erreicht, dass Daten ausschließlich in eine Richtung, d.h. unidirektional, von dem ersten Kommunikationsnetzwerk in das zweite Kommunikationsnetzwerk weitergeleitet werden.
-
Der Zugriff auf die Speicherbereiche kann dabei mittels eines Shared-Memory-Ansatzes realisiert werden. Die erste Netzwerkschnittstelle, das Filterelement sowie die zweite Netzwerkschnittstelle können beispielsweise unter Verwendung eines Mikrokernels, insbesondere eines L4-Mikrokernels, implementiert werden.
-
Gemäß einem ersten Aspekt betrifft die Erfindung eine Netzwerkentität zum unidirektionalen Weiterleiten von Daten. Die Netzwerkentität umfasst einen Speicher mit einem ersten Speicherbereich und einem zweiten Speicherbereich. Die Netzwerkentität umfasst ferner eine erste Netzwerkschnittstelle, welche ausgebildet ist, ein Datenpaket über ein erstes Kommunikationsnetzwerk zu empfangen, wobei das Datenpaket die Daten umfasst, die Daten aus dem Datenpaket zu extrahieren, und die Daten in dem ersten Speicherbereich abzulegen. Die Netzwerkentität umfasst zudem ein Filterelement, welches ausgebildet ist, die Daten aus dem ersten Speicherbereich auszulesen, und die Daten in dem zweiten Speicherbereich abzulegen. Die Netzwerkentität umfasst ferner eine zweite Netzwerkschnittstelle, welche ausgebildet ist, die Daten aus dem zweiten Speicherbereich auszulesen, ein weiteres Datenpaket zu erzeugen, wobei das weitere Datenpaket die Daten umfasst, und das weitere Datenpaket über ein zweites Kommunikationsnetzwerk auszusenden. Der Zugriff auf den ersten Speicherbereich und den zweiten Speicherbereich kann jeweils mittels eines Shared-Memory-Ansatzes realisiert werden.
-
Gemäß einer Ausführungsform ist die erste Netzwerkschnittstelle ausgebildet, das Datenpaket unter Verwendung eines ersten Kommunikationsprotokolls über das erste Kommunikationsnetzwerk zu empfangen, und das erste Kommunikationsprotokoll in ein zweites Kommunikationsprotokoll zu konvertieren. Das erste Kommunikationsprotokoll kann einer höheren Protokollschicht zugeordnet sein als das zweite Kommunikationsprotokoll. Dadurch wird der Vorteil erreicht, dass die Handhabung der Daten durch die erste Netzwerkschnittstelle, das Filterelement und die zweite Netzwerkschnittstelle auf das erste Kommunikationsprotokoll ausgelegt werden kann.
-
Gemäß einer Ausführungsform ist die zweite Netzwerkschnittstelle ausgebildet, das zweite Kommunikationsprotokoll in das erste Kommunikationsprotokoll zu konvertieren, und das weitere Datenpaket unter Verwendung des ersten Kommunikationsprotokolls über das zweite Kommunikationsnetzwerk auszusenden. Das erste Kommunikationsprotokoll kann folglich zur Kommunikation über das erste Kommunikationsnetzwerk und das zweite Kommunikationsnetzwerk eingesetzt werden. Dadurch wird der Vorteil erreicht, dass die Netzwerkentität einen transparenten Betrieb ermöglichen kann.
-
Gemäß einer Ausführungsform ist das erste Kommunikationsprotokoll ein HTTP-Kommunikationsprotokoll (HTTP: Hypertext Transfer Protocol), ein SMTP-Kommunikationsprotokoll (SMTP: Simple Mail Transfer Protocol) oder ein FTP-Kommunikationsprotokoll (FTP: File Transfer Protocol), wobei das zweite Kommunikationsprotokoll ein TCP-Kommunikationsprotokoll (TCP: Transmission Control Protocol) oder ein UDP-Kommunikationsprotokoll (UDP: User Datagram Protocol) ist. Dadurch wird der Vorteil erreicht, dass die Netzwerkentität effizient implementiert werden kann. Die genannten standardisierten Kommunikationsprotokolle können jeweils vollständig oder teilweise gemäß dem jeweiligen Standard als erstes Kommunikationsprotokoll bzw. als zweites Kommunikationsprotokoll verwendet werden.
-
Gemäß einer Ausführungsform basieren das erste Kommunikationsprotokoll und das zweite Kommunikationsprotokoll auf einem IP-Kommunikationsprotokoll (IP: Internet Protocol). Dadurch wird der Vorteil erreicht, dass eine effiziente Vermittlung des Datenpakets und des weiteren Datenpaketes realisiert werden kann.
-
Gemäß einer Ausführungsform umfasst die erste Netzwerkschnittstelle einen ersten Application-Level-Gateway (ALG), und umfasst die zweite Netzwerkschnittstelle einen zweiten Application-Level-Gateway (ALG). Dadurch wird der Vorteil erreicht, dass die Kommunikation über das erste Kommunikationsnetzwerk und das zweite Kommunikationsnetzwerk effizienter durchgeführt werden kann. Der erste Application-Level-Gateway (ALG) kann ausgebildet sein, das erste Kommunikationsprotokoll in das zweite Kommunikationsprotokoll zu konvertieren, und der zweite Application-Level-Gateway (ALG) kann ausgebildet sein, das zweite Kommunikationsprotokoll in das erste Kommunikationsprotokoll zu konvertieren. Der erste Application-Level-Gateway (ALG) und der zweite Application-Level-Gateway (ALG) können als separate Hardwarekomponenten implementiert sein. Der erste Application-Level-Gateway (ALG) und der zweite Application-Level-Gateway (ALG) können gemäß der Spezifikation IETF RFC 2663 implementiert sein.
-
Gemäß einer Ausführungsform ist die zweite Netzwerkschnittstelle ausgebildet, das weitere Datenpaket an eine Empfangsnetzwerkentität über das zweite Kommunikationsnetzwerk auszusenden, und einen erfolgreichen Empfang des weiteren Datenpakets durch die Empfangsnetzwerkentität zu verifizieren, wobei die zweite Netzwerkschnittstelle ausgebildet ist, einen Empfangsindikator zu erzeugen, wobei der Empfangsindikator einen erfolgreichen Empfang des weiteren Datenpaketes durch die Empfangsnetzwerkentität anzeigt. Dadurch wird der Vorteil erreicht, dass eine effiziente Datenflusssteuerung zwischen dem ersten Kommunikationsnetzwerk und dem zweiten Kommunikationsnetzwerk realisiert werden kann.
-
Die Verifikation des erfolgreichen Empfangs des weiteren Datenpakets durch die Empfangsnetzwerkentität kann beispielsweise durch einen Empfang einer Empfangsbestätigung durch die zweite Netzwerkschnittstelle bewirkt werden, wobei die Empfangsbestätigung von der Empfangsnetzwerkentität ausgesendet worden sein kann. Das Aussenden bzw. das Empfangen der Empfangsbestätigung kann ferner in einer Spezifikation des ersten Kommunikationsprotokolls vorgesehen sein.
-
Gemäß einer Ausführungsform ist die zweite Netzwerkschnittstelle ausgebildet, eine Mehrzahl von weiteren Datenpaketen an die Empfangsnetzwerkentität über das zweite Kommunikationsnetzwerk auszusenden, und einen erfolgreichen Empfang der Mehrzahl von weiteren Datenpaketen durch die Empfangsnetzwerkentität zu verifizieren, wobei der Empfangsindikator ferner einen erfolgreichen Empfang der Mehrzahl von weiteren Datenpaketen durch die Empfangsnetzwerkentität anzeigt. Der Empfangsindikator kann beispielsweise einen erfolgreichen Empfang auf Verbindungsebene, beispielsweise einer Datei bei einem FTP-Kommunikationsprotokoll oder einer Email bei einem SMTP-Kommunikationsprotokoll, anzeigen. Die jeweiligen Datenpakete können jeweils, wie vorstehend für ein einzelnes Datenpaket beschrieben, durch die Netzwerkentität weitergeleitet werden.
-
Gemäß einer Ausführungsform umfasst der Speicher einen dritten Speicherbereich und einen vierten Speicherbereich, wobei die zweite Netzwerkschnittstelle ausgebildet ist, den Empfangsindikator in dem dritten Speicherbereich abzulegen, wobei das Filterelement ausgebildet ist, den Empfangsindikator aus dem dritten Speicherbereich auszulesen, und den Empfangsindikator in dem vierten Speicherbereich abzulegen, und wobei die erste Netzwerkschnittstelle ausgebildet ist, den Empfangsindikator aus dem vierten Speicherbereich auszulesen. Dadurch wird der Vorteil erreicht, dass der Empfangsindikator unidirektional von dem dritten Speicherbereich in den vierten Speicherbereich übertragen werden kann. Der Zugriff auf den dritten Speicherbereich und den vierten Speicherbereich kann jeweils mittels eines Shared-Memory-Ansatzes realisiert werden.
-
Gemäß einer Ausführungsform ist die erste Netzwerkschnittstelle ausgebildet, das Datenpaket von einer Sendenetzwerkentität über das erste Kommunikationsnetzwerk zu empfangen, und den erfolgreichen Empfang des weiteren Datenpaketes durch die Empfangsnetzwerkentität der Sendenetzwerkentität auf der Basis des Empfangsindikators zu signalisieren. Dadurch wird der Vorteil erreicht, dass eine effiziente Datenflusssteuerung zwischen dem ersten Kommunikationsnetzwerk und dem zweiten Kommunikationsnetzwerk realisiert werden kann.
-
Die Signalisierung des erfolgreichen Empfangs des weiteren Datenpakets durch die Empfangsnetzwerkentität kann beispielsweise durch ein Aussenden einer weiteren Empfangsbestätigung durch die erste Netzwerkschnittstelle bewirkt werden, wobei die weitere Empfangsbestätigung von der Sendenetzwerkentität empfangen werden kann. Das Aussenden bzw. das Empfangen der weiteren Empfangsbestätigung kann ferner in einer Spezifikation des ersten Kommunikationsprotokolls vorgesehen sein.
-
Gemäß einer Ausführungsform ist der Empfangsindikator ein zweiwertiger Empfangsindikator. Dadurch wird der Vorteil erreicht, dass der Empfangsindikator einen minimalen Informationsgehalt zum Anzeigen des erfolgreichen Empfangs des weiteren Datenpaketes durch die Empfangsnetzwerkentität aufweisen kann. Der Empfangsindikator kann beispielsweise eine logische 1 für einen erfolgreichen Empfang des weiteren Datenpaketes oder eine logische 0 für einen fehlgeschlagenen Empfang des weiteren Datenpaketes durch die Empfangsnetzwerkentität anzeigen.
-
Gemäß einer Ausführungsform weist der Empfangsindikator eine vorbestimmte Datenmenge auf. Die vorbestimmte Datenmenge kann beispielsweise 1 Bit sein. Dadurch wird der Vorteil erreicht, dass der Empfangsindikator effizient in dem dritten Speicherbereich und dem vierten Speicherbereich repräsentiert werden kann. Ein weiterer Vorteil besteht darin, dass zum Anzeigen des erfolgreichen Empfangs des weiteren Datenpaketes der Rückkanal lediglich eine geringe Datenrate aufweisen kann.
-
Gemäß einer Ausführungsform ist der erste Speicherbereich als ein erster Ringpuffer oder als eine erste Warteschlange (engl. queue) ausgebildet. Dadurch wird der Vorteil erreicht, dass der Zugriff auf den ersten Speicherbereich effizient durchgeführt werden kann.
-
Gemäß einer Ausführungsform ist der zweite Speicherbereich als ein zweiter Ringpuffer oder als eine zweite Warteschlange (engl. queue) ausgebildet. Dadurch wird der Vorteil erreicht, dass der Zugriff auf den zweiten Speicherbereich effizient durchgeführt werden kann.
-
Gemäß einer Ausführungsform ist der dritte Speicherbereich als ein dritter Ringpuffer oder als eine dritte Warteschlange (engl. queue) ausgebildet. Dadurch wird der Vorteil erreicht, dass der Zugriff auf den dritten Speicherbereich effizient durchgeführt werden kann.
-
Gemäß einer Ausführungsform ist der vierte Speicherbereich als ein vierter Ringpuffer oder als eine vierte Warteschlange (engl. queue) ausgebildet. Dadurch wird der Vorteil erreicht, dass der Zugriff auf den vierten Speicherbereich effizient durchgeführt werden kann.
-
Gemäß einer Ausführungsform umfasst die Netzwerkentität ferner eine Speicherverwaltungseinheit, insbesondere eine I/O-Memory-Management-Unit (IOMMU), zum Verwalten des ersten Speicherbereichs, des zweiten Speicherbereichs, des dritten Speicherbereichs und/oder des vierten Speicherbereichs. Dadurch wird der Vorteil erreicht, dass Zugriffsberechtigungen der ersten Netzwerkschnittstelle, des Filterelements und/oder der zweiten Netzwerkschnittstelle auf die jeweiligen Speicherbereiche effizient zugeordnet werden können. Die Speicherverwaltungseinheit kann durchsetzen, dass ein entsprechender Zugriff auf einen jeweiligen Speicherbereich ausschließlich durch eine jeweils berechtigte Komponenten, insbesondere die erste Netzwerkschnittstelle, das Filterelement und/oder die zweite Netzwerkschnittstelle, durchgeführt werden kann.
-
Gemäß einer Ausführungsform ist der ersten Netzwerkschnittstelle eine ausschließliche Schreibberechtigung (engl. write-only) auf den ersten Speicherbereich zum Ablegen der Daten in dem ersten Speicherbereich zugeordnet, wobei dem Filterelement eine ausschließliche Leseberechtigung (engl. read-only) auf den ersten Speicherbereich zum Auslesen der Daten aus dem ersten Speicherbereich, und eine ausschließliche Schreibberechtigung (engl. write-only) auf den zweiten Speicherbereich zum Ablegen der Daten in dem zweiten Speicherbereich zugeordnet sind, und wobei der zweiten Netzwerkschnittstelle eine ausschließliche Leseberechtigung (engl. read-only) auf den zweiten Speicherbereich zum Auslesen der Daten aus dem zweiten Speicherbereich zugeordnet ist. Dadurch wird der Vorteil erreicht, dass eine unidirektionale Weiterleitung der Daten unter Verwendung des ersten Speicherbereiches und des zweiten Speicherbereiches effizient realisiert werden kann.
-
Gemäß einer Ausführungsform ist der zweiten Netzwerkschnittstelle eine ausschließliche Schreibberechtigung (engl. write-only) auf den dritten Speicherbereich zum Ablegen des Empfangsindikators in dem dritten Speicherbereich zugeordnet, wobei dem Filterelement eine ausschließliche Leseberechtigung (engl. read-only) auf den dritten Speicherbereich zum Auslesen des Empfangsindikators aus dem dritten Speicherbereich, und eine ausschließliche Schreibberechtigung (engl. write-only) auf den vierten Speicherbereich zum Ablegen des Empfangsindikators in dem vierten Speicherbereich zugeordnet sind, und wobei der ersten Netzwerkschnittstelle eine ausschließliche Leseberechtigung (engl. read-only) auf den vierten Speicherbereich zum Auslesen des Empfangsindikators aus dem vierten Speicherbereich zugeordnet ist. Dadurch wird der Vorteil erreicht, dass der dritte Speicherbereich und der vierte Speicherbereich nicht zur unidirektionalen Weiterleitung der Daten verwendet werden kann.
-
Gemäß einer Ausführungsform ist das Filterelement ausgebildet, ein vorbestimmtes Datenmuster in den Daten zu detektieren, und die Daten zu verwerfen, falls die Daten das vorbestimmte Datenmuster aufweisen. Das vorbestimmte Datenmuster kann beispielsweise schädliche Befehle, Computerviren oder unzulässige Daten repräsentieren. Dadurch wird der Vorteil erreicht, dass eine weitere Filterung der Daten realisiert werden kann.
-
Gemäß einer Ausführungsform ist die erste Netzwerkschnittstelle, das Filterelement oder die zweite Netzwerkschnittstelle unter Verwendung eines L4-Mikrokernels implementiert. Dadurch wird der Vorteil erreicht, dass ein minimaler verifizierbarer Kernel zur Implementierung der Netzwerkentität eingesetzt werden kann.
-
Gemäß einer Ausführungsform ist die Netzwerkentität eine Datendiode. Dadurch wird der Vorteil erreicht, dass die Daten ausschließlich unidirektional weitergeleitet werden.
-
Gemäß einem zweiten Aspekt betrifft die Erfindung ein Kommunikationssystem zum unidirektionalen Weiterleiten von Daten. Das Kommunikationssystem umfasst eine Sendenetzwerkentität, eine Netzwerkentität gemäß dem ersten Aspekt der Erfindung, und eine Empfangsnetzwerkentität. Die Netzwerkentität ist ausgebildet, ein Datenpaket von der Sendenetzwerkentität über ein erstes Kommunikationsnetzwerk zu empfangen, und ein weiteres Datenpaket an die Empfangsnetzwerkentität über ein zweites Kommunikationsnetzwerk auszusenden. Das Datenpaket und das weitere Datenpaket umfassen jeweils die Daten.
-
Gemäß einer Ausführungsform ist die Sendenetzwerkentität ein Client, wobei die Empfangsnetzwerkentität ein Server ist. Dadurch wird der Vorteil erreicht, dass die Sendenetzwerkentität und die Empfangsnetzwerkentität effizient implementiert werden können.
-
Gemäß einer Ausführungsform umfasst die Empfangsnetzwerkentität einen Netzwerkspeicher, insbesondere ein Network-Attached-Storage (NAS). Dadurch wird der Vorteil erreicht, dass die weitergeleiteten Daten effizient durch die Empfangsnetzwerkentität gespeichert werden können.
-
Gemäß einer Ausführungsform ist die Sendenetzwerkentität einer ersten Sicherheitsdomäne zugeordnet, wobei die Empfangsnetzwerkentität einer zweiten Sicherheitsdomäne zugeordnet ist. Die erste Sicherheitsdomäne kann geringe Anforderungen an eine Sicherheit der Daten aufweisen als die zweite Sicherheitsdomäne. Dadurch wird der Vorteil erreicht, dass durch die Netzwerkentität zwei Sicherheitsdomänen effizient voneinander getrennt werden können.
-
Gemäß einem dritten Aspekt betrifft die Erfindung ein Verfahren zum unidirektionalen Weiterleiten von Daten unter Verwendung einer Netzwerkentität, wobei die Netzwerkentität einen Speicher mit einem ersten Speicherbereich und einem zweiten Speicherbereich, eine erste Netzwerkschnittstelle, ein Filterelement und eine zweite Netzwerkschnittstelle umfasst. Das Verfahren umfasst ein Empfangen eines Datenpaketes über ein erstes Kommunikationsnetzwerk durch die erste Netzwerkschnittstelle, wobei das Datenpaket die Daten umfasst, ein Extrahieren der Daten aus dem Datenpaket durch die erste Netzwerkschnittstelle, ein Ablegen der Daten in dem ersten Speicherbereich durch die erste Netzwerkschnittstelle, ein Auslesen der Daten aus dem ersten Speicherbereich durch das Filterelement, ein Ablegen der Daten in dem zweiten Speicherbereich durch das Filterelement, ein Auslesen der Daten aus dem zweiten Speicherbereich durch die zweite Netzwerkschnittstelle, ein Erzeugen eines weiteren Datenpaketes durch die zweite Netzwerkschnittstelle, wobei das weitere Datenpaket die Daten umfasst, und ein Aussenden des weiteren Datenpaketes über ein zweites Kommunikationsnetzwerk durch die zweite Netzwerkschnittstelle.
-
Das Verfahren kann durch die Netzwerkentität ausgeführt werden. Weitere Merkmale des Verfahrens resultieren unmittelbar aus den Merkmalen bzw. der Funktionalität der Netzwerkentität.
-
Gemäß einem vierten Aspekt betrifft die Erfindung ein Computerprogramm mit einem Programmcode zum Ausführen des Verfahrens gemäß dem dritten Aspekt der Erfindung. Die Netzwerkentität, insbesondere die erste Netzwerkschnittstelle, das Filterelement und die zweite Netzwerkschnittstelle, können programmtechnisch eingerichtet sein, um den Programmcode auszuführen.
-
Die Erfindung kann in Hardware und Software implementiert werden.
-
Weitere Ausführungsbeispiele werden Bezug nehmend auf die beiliegenden Zeichnungen näher erläutert. Es zeigen:
- 1 ein schematisches Diagramm einer Netzwerkentität zum unidirektionalen Weiterleiten von Daten;
- 2 ein schematisches Diagramm eines Kommunikationssystems zum unidirektionalen Weiterleiten von Daten;
- 3 ein schematisches Diagramm eines Verfahrens zum unidirektionalen Weiterleiten von Daten unter Verwendung einer Netzwerkentität;
- 4 ein schematisches Diagramm einer Netzwerkentität zum unidirektionalen Weiterleiten von Daten;
- 5 ein schematisches Diagramm einer Netzwerkentität zum unidirektionalen Weiterleiten von Daten; und
- 6 ein schematisches Diagramm eines Kommunikationssystems zum unidirektionalen Weiterleiten von Daten.
-
1 zeigt ein schematisches Diagramm einer Netzwerkentität 100 zum unidirektionalen Weiterleiten von Daten. Die Netzwerkentität 100 umfasst einen Speicher 101 mit einem ersten Speicherbereich 101a und einem zweiten Speicherbereich 101b. Die Netzwerkentität 100 umfasst ferner eine erste Netzwerkschnittstelle 103, welche ausgebildet ist, ein Datenpaket über ein erstes Kommunikationsnetzwerk zu empfangen, wobei das Datenpaket die Daten umfasst, die Daten aus dem Datenpaket zu extrahieren, und die Daten in dem ersten Speicherbereich 101a abzulegen. Die Netzwerkentität 100 umfasst zudem ein Filterelement 105, welches ausgebildet ist, die Daten aus dem ersten Speicherbereich 101a auszulesen, und die Daten in dem zweiten Speicherbereich 101b abzulegen. Die Netzwerkentität 100 umfasst ferner eine zweite Netzwerkschnittstelle 107, welche ausgebildet ist, die Daten aus dem zweiten Speicherbereich 101b auszulesen, ein weiteres Datenpaket zu erzeugen, wobei das weitere Datenpaket die Daten umfasst, und das weitere Datenpaket über ein zweites Kommunikationsnetzwerk auszusenden.
-
2 zeigt ein schematisches Diagramm eines Kommunikationssystems 200 zum unidirektionalen Weiterleiten von Daten. Das Kommunikationssystem 200 umfasst eine Sendenetzwerkentität 201, eine Netzwerkentität 100 und eine Empfangsnetzwerkentität 203. Die Netzwerkentität 100 ist ausgebildet, ein Datenpaket von der Sendenetzwerkentität 201 über ein erstes Kommunikationsnetzwerk 205 zu empfangen, und ein weiteres Datenpaket an die Empfangsnetzwerkentität 203 über ein zweites Kommunikationsnetzwerk 207 auszusenden. Das Datenpaket und das weitere Datenpaket umfassen jeweils die Daten.
-
3 zeigt ein schematisches Diagramm eines Verfahrens 300 zum unidirektionalen Weiterleiten von Daten unter Verwendung einer Netzwerkentität. Die Netzwerkentität umfasst einen Speicher mit einem ersten Speicherbereich und einem zweiten Speicherbereich, eine erste Netzwerkschnittstelle, ein Filterelement und eine zweite Netzwerkschnittstelle. Das Verfahren 300 umfasst ein Empfangen 301 eines Datenpaketes über ein erstes Kommunikationsnetzwerk durch die erste Netzwerkschnittstelle, wobei das Datenpaket die Daten umfasst, ein Extrahieren 303 der Daten aus dem Datenpaket durch die erste Netzwerkschnittstelle, ein Ablegen 305 der Daten in dem ersten Speicherbereich durch die erste Netzwerkschnittstelle, ein Auslesen 307 der Daten aus dem ersten Speicherbereich durch das Filterelement, ein Ablegen 309 der Daten in dem zweiten Speicherbereich durch das Filterelement, ein Auslesen 311 der Daten aus dem zweiten Speicherbereich durch die zweite Netzwerkschnittstelle, ein Erzeugen 313 eines weiteren Datenpaketes durch die zweite Netzwerkschnittstelle, wobei das weitere Datenpaket die Daten umfasst, und ein Aussenden 315 des weiteren Datenpaketes über ein zweites Kommunikationsnetzwerk durch die zweite Netzwerkschnittstelle.
-
4 zeigt ein schematisches Diagramm einer Netzwerkentität 100 zum unidirektionalen Weiterleiten von Daten. Die Netzwerkentität 100 umfasst einen Speicher 101 mit einem ersten Speicherbereich und einem zweiten Speicherbereich. Die Netzwerkentität 100 umfasst ferner eine erste Netzwerkschnittstelle 103, welche ausgebildet ist, ein Datenpaket über ein erstes Kommunikationsnetzwerk von einer Sendenetzwerkentität zu empfangen, wobei das Datenpaket die Daten umfasst, die Daten aus dem Datenpaket zu extrahieren, und die Daten in dem ersten Speicherbereich abzulegen. Die Netzwerkentität 100 umfasst zudem ein Filterelement 105, welches ausgebildet ist, die Daten aus dem ersten Speicherbereich auszulesen, und die Daten in dem zweiten Speicherbereich abzulegen. Die Netzwerkentität 100 umfasst ferner eine zweite Netzwerkschnittstelle 107, welche ausgebildet ist, die Daten aus dem zweiten Speicherbereich auszulesen, ein weiteres Datenpaket zu erzeugen, wobei das weitere Datenpaket die Daten umfasst, und das weitere Datenpaket über ein zweites Kommunikationsnetzwerk an eine Empfangsnetzwerkentität auszusenden.
-
Die Netzwerkentität 100 kann eine Mehrzahl von Hardwarekomponenten umfassen. Insbesondere ist der Speicher 101 als Hardwarekomponente realisiert. Die erste Netzwerkschnittstelle 103 und die zweite Netzwerkschnittstelle 107 können jeweils eine Netzwerkkarte (engl. Network Interface Card, NIC) umfassen oder verwenden.
-
Die Netzwerkentität 100 ist ferner ausgebildet, ein Betriebssystem auszuführen, welches unprivilegiert sein kann. Das Betriebssystem kann dabei Treiber, Netzwerkfunktionen, IP-Filter, und Prozesse bereitzustellen bzw. ausführen. Die Netzwerkentität 100 kann ferner einen Separationskern verwenden, welcher privilegiert sein kann. Über den Separationskern können auch mehrere unprivilegierte Betriebssysteme parallel aufgeführt werden. Falls beispielsweise die erste Netzwerkschnittstelle 103 und die zweite Netzwerkschnittstelle 107 jeweils getrennte unprivilegierte Betriebssysteme verwenden, ist es möglich, jeweils nur eines der beiden Betriebssysteme zu aktualisieren, beispielsweise zur Behebung von Sicherheitslücken. Auf eine Modifikation der restlichen Komponenten der Netzwerkentität 100 kann in diesem Fall verzichtet werden. Dies ist insbesondere von Vorteil, falls beispielsweise ein Kommunikationsnetzwerk besondere Anforderungen hinsichtlich der Zulassung bzw. Zertifizierung der Komponenten aufweist, wobei eine entsprechende Modifikation aufwändig wäre, das andere Kommunikationsnetzwerk jedoch als nicht sicher angesehen wird, sodass potentielle Sicherheitslücken schnell behoben werden sollten.
-
Die zweite Netzwerkschnittstelle 107 ist ausgebildet, einen erfolgreichen Empfang des weiteren Datenpakets durch die Empfangsnetzwerkentität zu verifizieren, wobei die zweite Netzwerkschnittstelle 107 ausgebildet ist, einen Empfangsindikator zu erzeugen, wobei der Empfangsindikator einen erfolgreichen Empfang des weiteren Datenpaketes durch die Empfangsnetzwerkentität anzeigt. Die zweite Netzwerkschnittstelle 107 kann ferner ausgebildet sein, eine Mehrzahl von weiteren Datenpaketen an die Empfangsnetzwerkentität über das zweite Kommunikationsnetzwerk auszusenden, und einen erfolgreichen Empfang der Mehrzahl von weiteren Datenpaketen durch die Empfangsnetzwerkentität zu verifizieren, wobei der Empfangsindikator ferner einen erfolgreichen Empfang der Mehrzahl von weiteren Datenpaketen durch die Empfangsnetzwerkentität anzeigt.
-
Der Empfangsindikator kann mithin für eine komplette erfolgreiche Übertragung, beispielsweise einer Datei bei einem FTP-Kommunikationsprotokoll oder einer Email bei einem SMTP-Kommunikationsprotokoll, erzeugt und über einen Rückkanal übermittelt werden. Dadurch kann eine erforderliche Datenrate des Rückkanals reduziert werden gegenüber dem Fall einer reinen TCP-Kommunikationsverbindung, bei welcher für jedes oder jeweils wenige Datenpakete jeweils eine Empfangsbestätigung erfolgen kann. Das Filterelement 105 kann diese Einschränkung des Rückkanals durchsetzen.
-
Über den Rückkanal können ferner auch Informationen zur Datenflusssteuerung übertragen werden. Falls die Sendenetzwerkentität Daten über einen bestimmten Zeitraum schneller aussendet als sie die Empfangsnetzwerkentität empfangen kann, kann dies der ersten Netzwerkschnittstelle 103 signalisiert werden. Die erste Netzwerkschnittstelle 103 signalisiert dann beispielsweise über die im TCP-Kommunikationsprotokoll vorhandenen Mechanismen der Sendenetzwerkentität, dass sie keine Daten mehr aussenden soll. Erst wenn die Empfangsnetzwerkentität die Daten vollständig übernommen hat wird signalisiert, dass wieder Daten durch die Sendenetzwerkentität ausgesendet werden dürfen. Auch hier kann durch das Filterelement 105 durchgesetzt werden, dass nur Signalisierungen in Rückrichtung fließen und somit die erforderliche Datenrate des Rückkanals gegenüber Datenraten bei der Datenflusssteuerung mittels des TCP-Kommunikationsprotokolls reduziert werden kann.
-
Ferner ist es möglich, dass die zweite Netzwerkschnittstelle 107 bereits mit dem Aussenden von weiteren Datenpaketen beginnt, bevor die erste Netzwerkschnittstelle 103 die gesamten zu einer kompletten Übertragung gehörenden Daten vollständig empfangen hat.
-
Die erste Netzwerkschnittstelle 103 und die zweite Netzwerkschnittstelle 107 bzw. die jeweiligen Netzwerkkarten (NICs) können direkt auf den Speicher 101, beispielsweise Hauptspeicher, mittels eines Speicherdirektzugriffs (Direct-Memory-Access, DMA) zugreifen. Um beispielsweise zu verhindern, dass über Angriffe eine Netzwerkkarte am Filterelement 105 vorbei auf einen Speicherbereich des Speichers 101 zugreift, welcher einer anderen Seite bzw. Sicherheitsdomäne zugeordnet ist, kann eine Speicherverwaltungseinheit beispielsweise in Form einer IOMMU (I/O-Memory-Management-Unit) eingesetzt werden. Mit dieser Speicherverwaltungseinheit kann der Zugriff auf die Speicherbereiche des Speichers 101 eingeschränkt werden, auf welche die jeweilige Netzwerkkarte zugreifen kann.
-
5 zeigt ein schematisches Diagramm einer Netzwerkentität 100 zum unidirektionalen Weiterleiten von Daten. Die Netzwerkentität 100 umfasst einen Speicher mit einem ersten Speicherbereich 101a und einem zweiten Speicherbereich 101b. Die Netzwerkentität 100 umfasst ferner eine erste Netzwerkschnittstelle 103, welche ausgebildet ist, ein Datenpaket über ein erstes Kommunikationsnetzwerk zu empfangen, wobei das Datenpaket die Daten umfasst, die Daten aus dem Datenpaket zu extrahieren, und die Daten in dem ersten Speicherbereich 101a abzulegen. Die Netzwerkentität 100 umfasst zudem ein Filterelement 105, welches ausgebildet ist, die Daten aus dem ersten Speicherbereich 101a auszulesen, und die Daten in dem zweiten Speicherbereich 101b abzulegen. Die Netzwerkentität 100 umfasst ferner eine zweite Netzwerkschnittstelle 107, welche ausgebildet ist, die Daten aus dem zweiten Speicherbereich 101b auszulesen, ein weiteres Datenpaket zu erzeugen, wobei das weitere Datenpaket die Daten umfasst, und das weitere Datenpaket über ein zweites Kommunikationsnetzwerk auszusenden.
-
Die Datenflussrichtung bei der Weiterleitung der Daten ist hierbei unidirektional von der ersten Netzwerkschnittstelle 103 über den ersten Speicherbereich 101a, das Filterelement 105, den zweiten Speicherbereich 101b und die zweite Netzwerkschnittstelle 107. Die Empfangsindikation in einem Rückkanal erfolgt mittels eines Empfangsindikators, welcher von der zweiten Netzwerkschnittstelle 107 über einen dritten Speicherbereich, das Filterelement 105 und einen vierten Speicherbereich zu der ersten Netzwerkschnittstelle 103 übertragen werden kann. Der Zugriff auf den ersten Speicherbereich 101a, den zweiten Speicherbereich 101b, den dritten Speicherbereich und/oder den vierten Speicherbereich kann jeweils mittels eines Shared-Memory-Ansatzes realisiert werden.
-
Die erste Netzwerkschnittstelle 103 ist ausgebildet, das Datenpaket unter Verwendung eines ersten Kommunikationsprotokolls über das erste Kommunikationsnetzwerk zu empfangen, und das erste Kommunikationsprotokoll in ein zweites Kommunikationsprotokoll zu konvertieren. Die zweite Netzwerkschnittstelle 107 ist ausgebildet, das zweite Kommunikationsprotokoll in das erste Kommunikationsprotokoll zu konvertieren, und das weitere Datenpaket unter Verwendung des ersten Kommunikationsprotokolls über das zweite Kommunikationsnetzwerk auszusenden. Das erste Kommunikationsprotokoll und das zweite Kommunikationsprotokoll basieren hierbei auf einem IP-Kommunikationsprotokoll (IP: Internet Protocol).
-
Durch das Filterelement 105 wird mithin eine Filterinstanz geschaffen, welche eingangs- und ausgangsseitig jeweils mit einer eigenen unabhängige Netzwerkschnittstelle 103, 107 verbunden ist, welche jeweils unter Verwendung eines IP-Kommunikationsprotokolls kommunizieren können. Die Netzwerkschnittstellen 103, 107 sind dabei vorgesehen, Datenpakete, beispielsweise IP-Datenpakete, zu entpacken und wieder zusammenzusetzen.
-
Zwischen den Netzwerkschnittstellen 103, 107 befindet sich das Filterelement 105 als weitere unabhängige minimalisierte Filterinstanz, welche die Daten über separate Speicherbereiche 101a, 101b mittels eines Shared-Memory-Ansatzes nur von einer Seite der Netzwerkentität 100 auf die andere Seite überträgt. Ein Rückweg für Daten ist nicht vorgesehen bzw. implementiert. Das Filterelement 105 kann verbindungsorientiert betrieben werden und kann Fehlerzustände oder den Erfolg der Weiterleitung der Daten unter Verwendung der Netzwerkschnittstellen 103, 107 an eine Sendenetzwerkentität als Absender der Daten signalisieren. Mithin kann ein Rückkanal für derartige Statusinformationen implementiert sein, wobei das Filterelement 105 jedoch durchsetzen kann, dass dieser Rückkanal minimal ist. Falls ein UDP-Kommunikationsprotokoll als zweites Kommunikationsprotokoll verwendet wird, kann auf eine Signalisierung des Erfolgs der Weiterleitung der Daten bzw. eine Datenflusssteuerung verzichtet werden. Gemäß einer Ausführungsform wird das Filterelement 105 nicht verbindungsorientiert betrieben.
-
Das Filterelement 105 kann ferner ausgebildet sein, ein vorbestimmtes Datenmuster in den Daten zu detektieren, und die Daten zu verwerfen, falls die Daten das vorbestimmte Datenmuster aufweisen. Das vorbestimmte Datenmuster kann beispielsweise schädliche Befehle, Computerviren oder unzulässige Daten repräsentieren. Alternativ können Teil der Daten, welche das vorbestimmte Datenmuster aufweisen, aus den Daten entfernt werden. Die entsprechend bereinigten Daten können durch die zweite Netzwerkschnittstelle 107 weiter gehandhabt werden.
-
Ein eingehendes Datenpaket kann somit durch die erste Netzwerkschnittstelle 103 entpackt werden, um die Daten zu extrahieren. Die Daten können, gegebenenfalls unter Verwendung eines Shared-Memory-Ansatzes, durch das Filterelement 105 zu der zweiten Netzwerkschnittstelle 107 übertragen und dort zu einem weiteren Datenpaket wieder zusammengesetzt werden. Das Filterelement 105 kann festverdrahtet und dynamisch nicht steuerbar implementiert sein. Das Filterelement 105 kann ferner ausgebildet sein, bei einem vorgesehenen Datenfluss in Rückwärtsrichtung ein Rücksetzsignal an die Netzwerkschnittstellen 103, 107 auszugeben, wodurch jeglicher Datenfluss unterbunden werden kann.
-
Folglich kann eine per Konstruktion gewährleistete unidirektionale Weiterleitung von Daten mit zwei voneinander getrennten Netzwerkschnittstellen 103, 107 bzw. voneinander getrennten Netzwerkstacks mit einer Erfolgssignalisierung auf einer minimalisierten Plattform realisiert werden. Die Erfolgssignalisierung kann dabei mittels eines Rückkanals realisiert werden. Die minimalisierte Plattform erlaubt ferner eine vereinfachte Evaluierung der Funktionalität der Netzwerkentität 100 sowie eine vereinfachte Wartung bzw. Aktualisierung der Komponenten der Netzwerkentität 100 in einer Sicherheitsdomäne mit geringen Anforderungen an die Sicherheit der Daten. Die Netzwerkentität 100 ermöglicht ferner eine Weiterleitung der Daten mit hoher Datenrate. Mittels der Netzwerkentität 100 als Datendiode können die Daten unidirektional sowie zuverlässig weitergeleitet werden. Das Filterelement 105 kann hierbei gewährleisten, dass der Rückkanal nur für die Signalisierung des erfolgreichen Empfangs eines oder einer Mehrzahl weiterer Datenpakete verwendet wird.
-
6 zeigt ein schematisches Diagramm eines Kommunikationssystems 200 zum unidirektionalen Weiterleiten von Daten. Das Kommunikationssystem 200 umfasst eine Sendenetzwerkentität 201, eine Netzwerkentität 100 und eine Empfangsnetzwerkentität 203. Die Netzwerkentität 100 ist ausgebildet, ein Datenpaket von der Sendenetzwerkentität 201 über ein erstes Kommunikationsnetzwerk zu empfangen, und ein weiteres Datenpaket an die Empfangsnetzwerkentität 203 über ein zweites Kommunikationsnetzwerk auszusenden. Das Datenpaket und das weitere Datenpaket umfassen jeweils die Daten. Die Sendenetzwerkentität 201 ist ein Client, die Netzwerkentität 100 ist eine Datendiode, und die Empfangsnetzwerkentität 203 ist ein Server.
-
Die Netzwerkentität 100 umfasst einen Speicher mit einem ersten Speicherbereich 101a und einem zweiten Speicherbereich 101b. Die Netzwerkentität 100 umfasst ferner eine erste Netzwerkschnittstelle 103, welche ausgebildet ist, das Datenpaket über das erste Kommunikationsnetzwerk zu empfangen, wobei das Datenpaket die Daten umfasst, die Daten aus dem Datenpaket zu extrahieren, und die Daten in dem ersten Speicherbereich 101a abzulegen. Die Netzwerkentität 100 umfasst zudem ein Filterelement 105, welches ausgebildet ist, die Daten aus dem ersten Speicherbereich 101a auszulesen, und die Daten in dem zweiten Speicherbereich 101b abzulegen. Die Netzwerkentität 100 umfasst ferner eine zweite Netzwerkschnittstelle 107, welche ausgebildet ist, die Daten aus dem zweiten Speicherbereich 101b auszulesen, das weitere Datenpaket zu erzeugen, wobei das weitere Datenpaket die Daten umfasst, und das weitere Datenpaket über das zweite Kommunikationsnetzwerk auszusenden. Der Zugriff auf den ersten Speicherbereich 101a und den zweiten Speicherbereich 101b kann jeweils mittels eines Shared-Memory-Ansatzes realisiert werden.
-
Das Filterelement 105 ist hierbei als Prozess realisiert, welcher eine unidirektionale Übertragung der Daten von dem ersten Speicherbereich 101a in den zweiten Speicherbereich 101b durchführt. Die erste Netzwerkschnittstelle 103 und die zweite Netzwerkschnittstelle 107 verwenden jeweils einen Puffer in Form einer Pipe.
-
Die erste Netzwerkschnittstelle 103 ist ausgebildet, das Datenpaket unter Verwendung eines ersten Kommunikationsprotokolls über das erste Kommunikationsnetzwerk zu empfangen, und das erste Kommunikationsprotokoll in ein zweites Kommunikationsprotokoll zu konvertieren. Die zweite Netzwerkschnittstelle 107 ist ausgebildet, das zweite Kommunikationsprotokoll in das erste Kommunikationsprotokoll zu konvertieren, und das weitere Datenpaket unter Verwendung des ersten Kommunikationsprotokolls über das zweite Kommunikationsnetzwerk auszusenden.
-
Das erste Kommunikationsprotokoll ist beispielsweise ein FTP-Kommunikationsprotokoll (FTP: File Transfer Protocol), und das zweite Kommunikationsprotokoll ist beispielsweise ein TCP-Kommunikationsprotokoll (TCP: Transmission Control Protocol). Das erste Kommunikationsprotokoll könnte gemäß weiterer Ausführungsformen ein HTTP-Kommunikationsprotokoll (HTTP: Hypertext Transfer Protocol) oder ein SMTP-Kommunikationsprotokoll (SMTP: Simple Mail Transfer Protocol) sein. Das zweite Kommunikationsprotokoll könnte gemäß einer weiteren Ausführungsform ein UDP-Kommunikationsprotokoll (UDP: User Datagram Protocol) sein. Das erste Kommunikationsprotokoll kann einer höheren Protokollschicht zugeordnet sein als das zweite Kommunikationsprotokoll. Das erste Kommunikationsprotokoll kann jedoch auch einer niedrigeren Protokollschicht oder derselben Protokollschicht zugeordnet sein wie das zweite Kommunikationsprotokoll.
-
Alle in Verbindung mit einzelnen Ausführungsformen gezeigten oder beschriebenen Merkmale können in beliebiger Kombination in dem erfindungsgemäßen Gegenstand vorgesehen sein, um gleichzeitig deren vorteilhafte Wirkungen zu realisieren.
-
Bezugszeichenliste
-
- 100
- Netzwerkentität
- 101
- Speicher
- 101a
- Erster Speicherbereich
- 101b
- Zweiter Speicherbereich
- 103
- Erste Netzwerkschnittstelle
- 105
- Filterelement
- 107
- Zweite Netzwerkschnittstelle
- 200
- Kommunikationssystem
- 201
- Sendenetzwerkentität
- 203
- Empfangsnetzwerkentität
- 205
- Erstes Kommunikationsnetzwerk
- 207
- Zweites Kommunikationsnetzwerk
- 300
- Verfahren zum unidirektionalen Weiterleiten von Daten
- 301
- Empfangen eines Datenpaketes
- 303
- Extrahieren der Daten aus dem Datenpaket
- 305
- Ablegen der Daten in dem ersten Speicherbereich
- 307
- Auslesen der Daten aus dem ersten Speicherbereich
- 309
- Ablegen der Daten in dem zweiten Speicherbereich
- 311
- Auslesen der Daten aus dem zweiten Speicherbereich
- 313
- Erzeugen eines weiteren Datenpaketes
- 315
- Aussenden des weiteren Datenpaketes