{"id":2168,"date":"2018-10-17T14:39:22","date_gmt":"2018-10-17T12:39:22","guid":{"rendered":"https:\/\/innohub13.de\/?p=2168"},"modified":"2020-06-11T14:31:31","modified_gmt":"2020-06-11T12:31:31","slug":"iot-wissen-mqtt-1","status":"publish","type":"post","link":"https:\/\/innohub13.de\/en\/iot-wissen-mqtt-1\/","title":{"rendered":"IoT Wissen &#8211; MQTT Grundlagen"},"content":{"rendered":"<p>[et_pb_section bb_built=&#8220;1&#8243; specialty=&#8220;off&#8220; inner_width_tablet=&#8220;50px&#8220; inner_max_width_tablet=&#8220;100px&#8220; inner_max_width_phone=&#8220;50px&#8220; _builder_version=&#8220;3.25.3&#8243; custom_margin=&#8220;0px||0px|&#8220; custom_padding=&#8220;0px||0px|&#8220; box_shadow_horizontal_tablet=&#8220;0px&#8220; box_shadow_vertical_tablet=&#8220;0px&#8220; box_shadow_blur_tablet=&#8220;40px&#8220; box_shadow_spread_tablet=&#8220;0px&#8220; z_index_tablet=&#8220;500&#8243; gutter_width=&#8220;2&#8243; background_position=&#8220;top_center&#8220; use_background_color_gradient=&#8220;on&#8220; background_color_gradient_start=&#8220;#005ca9&#8243; background_color_gradient_end=&#8220;#002e55&#8243; background_color_gradient_direction=&#8220;360deg&#8220; background_color_gradient_overlays_image=&#8220;on&#8220; background_blend=&#8220;multiply&#8220; next_background_color=&#8220;#ffffff&#8220; global_module=&#8220;8857&#8243;][et_pb_row global_parent=&#8220;8857&#8243; _builder_version=&#8220;3.25.3&#8243; gutter_width=&#8220;2&#8243; custom_margin=&#8220;0px|||&#8220; box_shadow_horizontal_tablet=&#8220;0px&#8220; box_shadow_vertical_tablet=&#8220;0px&#8220; box_shadow_blur_tablet=&#8220;40px&#8220; box_shadow_spread_tablet=&#8220;0px&#8220; z_index_tablet=&#8220;500&#8243; custom_padding=&#8220;0px|||&#8220;][et_pb_column type=&#8220;1_3&#8243; global_parent=&#8220;8857&#8243; custom_padding__hover=&#8220;|||&#8220; custom_padding=&#8220;|||&#8220;][et_pb_image admin_label=&#8220;InnoHub Logo&#8220; global_parent=&#8220;8857&#8243; _builder_version=&#8220;3.25.3&#8243; src=&#8220;https:\/\/innohub13.de\/wp-content\/uploads\/ih-logo_w.png&#8220; box_shadow_horizontal_tablet=&#8220;0px&#8220; box_shadow_vertical_tablet=&#8220;0px&#8220; box_shadow_blur_tablet=&#8220;40px&#8220; box_shadow_spread_tablet=&#8220;0px&#8220; z_index_tablet=&#8220;500&#8243; disabled_on=&#8220;on|on|&#8220; disabled=&#8220;off&#8220; \/][\/et_pb_column][et_pb_column type=&#8220;1_3&#8243; global_parent=&#8220;8857&#8243; custom_padding__hover=&#8220;|||&#8220; custom_padding=&#8220;|||&#8220;][\/et_pb_column][et_pb_column type=&#8220;1_3&#8243; global_parent=&#8220;8857&#8243; custom_padding__hover=&#8220;|||&#8220; custom_padding=&#8220;|||&#8220;][et_pb_image admin_label=&#8220;IHS Logo&#8220; global_parent=&#8220;8857&#8243; _builder_version=&#8220;3.25.3&#8243; src=&#8220;https:\/\/innohub13.de\/wp-content\/uploads\/Innovative_Hochschule_SonderlogoWeiss.png&#8220; box_shadow_horizontal_tablet=&#8220;0px&#8220; box_shadow_vertical_tablet=&#8220;0px&#8220; box_shadow_blur_tablet=&#8220;40px&#8220; box_shadow_spread_tablet=&#8220;0px&#8220; z_index_tablet=&#8220;500&#8243; disabled_on=&#8220;on|on|&#8220; disabled=&#8220;off&#8220; \/][\/et_pb_column][\/et_pb_row][et_pb_row global_parent=&#8220;8857&#8243; _builder_version=&#8220;3.25.3&#8243; custom_padding=&#8220;100px|||&#8220; box_shadow_horizontal_tablet=&#8220;0px&#8220; box_shadow_vertical_tablet=&#8220;0px&#8220; box_shadow_blur_tablet=&#8220;40px&#8220; box_shadow_spread_tablet=&#8220;0px&#8220; z_index_tablet=&#8220;500&#8243; gutter_width=&#8220;2&#8243;][et_pb_column type=&#8220;4_4&#8243; global_parent=&#8220;8857&#8243; custom_padding__hover=&#8220;|||&#8220; custom_padding=&#8220;|||&#8220;][et_pb_post_title global_parent=&#8220;8857&#8243; _builder_version=&#8220;3.25.3&#8243; meta=&#8220;off&#8220; featured_image=&#8220;off&#8220; text_shadow_horizontal_length=&#8220;text_shadow_style,%91object Object%93&#8243; text_shadow_horizontal_length_tablet=&#8220;0px&#8220; text_shadow_vertical_length=&#8220;text_shadow_style,%91object Object%93&#8243; text_shadow_vertical_length_tablet=&#8220;0px&#8220; text_shadow_blur_strength=&#8220;text_shadow_style,%91object Object%93&#8243; text_shadow_blur_strength_tablet=&#8220;1px&#8220; title_text_shadow_horizontal_length=&#8220;title_text_shadow_style,%91object Object%93&#8243; title_text_shadow_horizontal_length_tablet=&#8220;0px&#8220; title_text_shadow_vertical_length=&#8220;title_text_shadow_style,%91object Object%93&#8243; title_text_shadow_vertical_length_tablet=&#8220;0px&#8220; title_text_shadow_blur_strength=&#8220;title_text_shadow_style,%91object Object%93&#8243; title_text_shadow_blur_strength_tablet=&#8220;1px&#8220; meta_text_shadow_horizontal_length=&#8220;meta_text_shadow_style,%91object Object%93&#8243; meta_text_shadow_horizontal_length_tablet=&#8220;0px&#8220; meta_text_shadow_vertical_length=&#8220;meta_text_shadow_style,%91object Object%93&#8243; meta_text_shadow_vertical_length_tablet=&#8220;0px&#8220; meta_text_shadow_blur_strength=&#8220;meta_text_shadow_style,%91object Object%93&#8243; meta_text_shadow_blur_strength_tablet=&#8220;1px&#8220; box_shadow_horizontal_tablet=&#8220;0px&#8220; box_shadow_vertical_tablet=&#8220;0px&#8220; box_shadow_blur_tablet=&#8220;40px&#8220; box_shadow_spread_tablet=&#8220;0px&#8220; z_index_tablet=&#8220;500&#8243; text_color=&#8220;light&#8220; title_font_size=&#8220;33px&#8220; title_line_height=&#8220;1.6em&#8220; title_font=&#8220;|600|||||||&#8220; \/][\/et_pb_column][\/et_pb_row][\/et_pb_section][et_pb_section bb_built=&#8220;1&#8243; inner_width=&#8220;auto&#8220; inner_max_width=&#8220;1080px&#8220; next_background_color=&#8220;#005ca9&#8243; prev_background_color=&#8220;#000000&#8243;][et_pb_row][et_pb_column type=&#8220;4_4&#8243; custom_padding__hover=&#8220;|||&#8220; custom_padding=&#8220;|||&#8220;][et_pb_text]<\/p>\n<p>\nDas Message Queue Telemetry Transport (kurz MQTT) Protokoll wird in diesem Projekt f\u00fcr die Kommunikation zwischen den verschiedenen Ger\u00e4ten genutzt. Der sowohl ISO- (ISO\/IEC PRF 20922), als auch OASIS-Standard MQTT gilt mittlerweile als der <a href=\"https:\/\/developer.ibm.com\/dwblog\/2016\/mqtt-de-facto-standard-iso-messaging\/?s_tact=C43301PW\">de facto Standard des IoT<\/a> und findet auch zunehmend Anwendung in industriellen Umgebungen. Das offene Nachrichtenprotokoll ist f\u00fcr die Machine-to-Machine-Kommunikation (M2M) konzipiert und hat einen <a href=\"http:\/\/www.steves-internet-guide.com\/mqtt-protocol-messages-overview\/\">kleinen Overhead<\/a>, wodurch die Menge der transferierten Daten gering gehalten und das jeweilige Netzwerk nur wenig belastet wird. Diese ressourcenschonende Art der Kommunikation eignet sich bestens f\u00fcr die Kommunikation zwischen vielen Akteuren und ist daher pr\u00e4destiniert f\u00fcr IoT-Szenarien, zu welchen auch der vorliegende Anwendungsfall \u2013 das vernetzte Testbed \u2013 z\u00e4hlt.<\/p>\n<p>Die \u00dcbermittlung der Daten erfolgt eventbasiert \u00fcber einen zentralen Broker. Eine MQTT-Nachricht besteht immer aus mindestens dem Topic und der Payload, dem eigentlichen Inhalt der Nachricht. Der Inhalt der Payload ist f\u00fcr den Broker irrelevant, denn alle Daten werden BASE64-codiert \u00fcbertragen. Topics hingegen werden genutzt um die Kommunikation zwischen den unterschiedlichen Teilnehmern (Clients) zu organisieren und haben eine hierarchische Struktur (siehe Abbildung 1). Der Name der Topics ist prinzipiell frei w\u00e4hlbar. Andere Teilnehmer (Clients) k\u00f6nnen diese Topics abonnieren (subscribe) und empfangen jede Nachricht, die auf dem entsprechenden Topic ver\u00f6ffentlicht wird (publish), irrelevant von welchem Client diese stammt.<\/p>\n<p>Ein Client kann entweder ein (oder mehrere) spezifische Topics abonnieren oder mit Hilfe von Wildcards ganze Teile der Hierarchie auf einmal abonnieren. Das Zeichen \u201e+\u201c gilt dabei als Wildcard f\u00fcr eine einzelne Hierarchieebene und das Zeichen \u201e#\u201c, welches immer am Ende eines Topics stehen muss, gilt f\u00fcr alle folgenden Hierarchieebenen inkl. aller Unterebenen. Folgende Beispiele veranschaulichen die Funktionsweise der Wildcards in Topics des MQTT-Protokolls: <a href=\"https:\/\/www.hivemq.com\/blog\/mqtt-essentials-part-5-mqtt-topics-best-practices\">Beispiele von HiveMQ<\/a>.<\/p>\n<p><strong>Optionale Eigenschaften eines MQTT-Clients<\/strong><\/p>\n<p><u>Persistent Session<\/u><\/p>\n<p>Wenn ein Client die Verbindung zum Server verliert, gewollt oder ungewollt, sind normalerweise alle abonnierten Topics verschwunden und m\u00fcssen neu hinzugef\u00fcgt werden. Dieses Verhalten wird \u201eClean Session\u201c bezeichnet. In bestimmten Anwendungsf\u00e4llen kann es allerdings sehr m\u00fchsam sein, zuvor abonnierte Topics wieder hinzuzuf\u00fcgen, wenn es sich z. B. um eine Vielzahl von Sensoren an unterschiedlichen Standorten handelt. F\u00fcr diese F\u00e4lle gibt es die M\u00f6glichkeit einer \u201ePersistent Session\u201c. Hier werden nicht nur die Topics eines Clients vom Server vorgehalten, sondern auch alle Nachrichten mit dem QoS Level 1 und 2, die den Client seit dem letzten Verbindungsabbruch nicht erreicht haben.<\/p>\n<p><u>Last Will &amp; Testament<\/u><\/p>\n<p>MQTT-Clients ist es m\u00f6glich, dem Broker beim Verbinden eine \u201eLast Will &amp; Testament\u201c (LWT) -Nachricht bekannt zu geben. Diese Nachricht wird gesendet, falls der Client die Verbindung zum Server ungewollt verliert. Dadurch l\u00e4sst sich z. B. eine \u00dcbersicht \u00fcber den Verbindungsstatus eines Clients realisieren<\/p>\n<p><strong>Optionale Eigenschaften einer MQTT Nachricht<\/strong><\/p>\n<p><u>Quality of Service<\/u><\/p>\n<p>MQTT bietet f\u00fcr die Spezifizierung der Semantik des Nachrichtentransfers drei Level von Quality of Service (QoS) an. Daf\u00fcr sind im Header der Nachricht zwei Bit reserviert, die bei jeder Nachricht das Level angeben. Die Bedeutung der unterschiedlichen Level ist wie folgt:<\/p>\n<ul>\n<li>Level 0: Die Nachricht wird einmalig gesendet und anschlie\u00dfend verworfen. Damit ist nicht sichergestellt, dass diese ankommt.<\/li>\n<li>Level 1: Es wird sichergestellt, dass die Nachricht mindestens einmal beim jedem Subscriber ankommt. Es kann aber vorkommen, dass die Nachricht mehrfach von einem Subscriber empfangen wird.<\/li>\n<li>Level 2: Im h\u00f6chsten Level der QoS wird sichergestellt, dass die Nachricht genau einmal von den Subscribern empfangen wird.<\/li>\n<\/ul>\n<p>Je h\u00f6her das Level der QoS, desto h\u00f6her ist die ben\u00f6tigte Servicezeit des Brokers f\u00fcr die Nachrichtenverteilung. Die Verwendung des jeweiligen QoS-Levels h\u00e4ngt vom Einsatzfall ab und sollte nicht pauschal als Restriktion f\u00fcr alle vorgegeben werden.<\/p>\n<p><u>Retained Messages<\/u><\/p>\n<p>Nachrichten k\u00f6nnen vom sendenden Client als \u201eRetained Message\u201c (aufbewahrte Nachrichten) markiert werden. Diese werden vom Broker zwischengespeichert und jeder Client, der das Topic mit der Retained Message abonniert, bekommt automatisch die letzte Nachricht mit einer Retained Kennzeichnung. Bei Temperaturdaten kann es beispielsweise sinnvoll sein Retained Messages zu aktivieren, damit ein neuer Subscriber nicht auf die n\u00e4chste \u00c4nderung warten muss bis er den aktuellen Status empf\u00e4ngt, sondern sofort die letzte Meldung erh\u00e4lt.<\/p>\n<p><strong>Sicherheit<\/strong><\/p>\n<p>Da das MQTT Protokoll auf dem TCP\/IP Stack basiert, besteht die M\u00f6glichkeit einer standardisierten Verschl\u00fcsselung auf Transportebene mit Hilfe von TLS\/SSL. Um diese Art der Verschl\u00fcsselung zu nutzen, ben\u00f6tigt der MQTT Broker ein X509 Zertifikat, bevorzugt von einer offiziellen Zertifizierungsstelle signiert, um die sp\u00e4tere Verifizierung des Servers durch den Client zu erleichtern. Des Weiteren wird f\u00fcr die verschl\u00fcsselte Kommunikation ein separater Listener auf einem extra Port erstellt, standardm\u00e4\u00dfig ist dieser Port 8883. Nun k\u00f6nnen Clients, die die M\u00f6glichkeit der verschl\u00fcsselten Kommunikation via TLS\/SSL unterst\u00fctzen, \u00fcber diesen Port verschl\u00fcsselt mit dem MQTT Broker Nachrichten austauschen.<\/p>\n<p>Eine weitere M\u00f6glichkeit die Kommunikation mit dem MQTT Broker abzusichern besteht darin, durch einen Authentifizierungsmechanismus die Nutzer zu begrenzen. Das Protokoll verf\u00fcgt daf\u00fcr \u00fcber Nutzernamen und Passwort Felder in der \u201eCONNECT\u201c Nachricht. Der Abgleich des Nutzernamens mit dem Passwort erfolgt brokerseitig, eine Methodik daf\u00fcr ist nicht standardisiert und muss vom Administrator h\u00e4ndisch eingerichtet werden. <em>Hierbei empfiehlt es sich ausdr\u00fccklich auf standardisierte, \u00f6ffentlich zug\u00e4ngliche Sicherheitsmechanismen zur\u00fcckzugreifen und keine eigenen Mechanismen zu programmieren!<\/em><\/p>\n<p>Eine weitere M\u00f6glichkeit der brokerseitigen Absicherung der MQTT Kommunikation besteht in der Erstellung von Autorisierungskonzepten. Diese Autorisierung kann jede erdenkliche Form annehmen, z. B. nutzerspezifisch, nutzergruppenspezifisch oder zertifikatsbasierend. Die Implementierung der Logik liegt erneut vollkommen frei in der Hand der Administratoren.<\/p>\n<p>Abschlie\u00dfend besteht noch die M\u00f6glichkeit der Nachrichtenverschl\u00fcsselung auf Applikationsebene. Diese ist abh\u00e4ngig von den jeweiligen Clients und kann unabh\u00e4ngig vom Broker von jedem Client eingesetzt werden.<\/p>\n<p>Es ist hierbei, wie bei allen \u00fcbrigen Sicherheitsmechanismen, zu beachten, dass jegliche Erh\u00f6hung der Sicherheit immer zu Performanceeinbu\u00dfen f\u00fchrt. Es kann daher Sinn machen, bei besonders zeitkritischen Anwendungsf\u00e4llen komplett auf Sicherheitsmechanismen zu verzichten um die Leistung des Gesamtsystems zu optimieren. Es empfiehlt sich in jedem Fall die Besonderheiten des jeweiligen Anwendungsfalles zu betrachten und die Sicherheitsanforderungen individuell zu bestimmen.<\/p>\n<p>[\/et_pb_text][et_pb_cta _builder_version=&#8220;3.17.2&#8243; button_text=&#8220;Zur\u00fcck zum Testbed&#8220; button_url=&#8220;https:\/\/innohub13.de\/testbed-2&#8243; custom_button=&#8220;on&#8220; button_text_color=&#8220;#005ea8&#8243; button_bg_color=&#8220;#ffffff&#8220; use_background_color=&#8220;off&#8220; \/][\/et_pb_column][\/et_pb_row][\/et_pb_section][et_pb_section bb_built=&#8220;1&#8243; _builder_version=&#8220;3.25.3&#8243; background_color=&#8220;#005ca9&#8243; z_index_tablet=&#8220;500&#8243; box_shadow_horizontal_tablet=&#8220;0px&#8220; box_shadow_vertical_tablet=&#8220;0px&#8220; box_shadow_blur_tablet=&#8220;40px&#8220; box_shadow_spread_tablet=&#8220;0px&#8220; next_background_color=&#8220;#ffffff&#8220; global_module=&#8220;7759&#8243; prev_background_color=&#8220;#ffffff&#8220;][et_pb_row global_parent=&#8220;7759&#8243; _builder_version=&#8220;3.25&#8243; background_size=&#8220;initial&#8220; background_position=&#8220;top_left&#8220; background_repeat=&#8220;repeat&#8220; column_structure=&#8220;1_2,1_2&#8243;][et_pb_column type=&#8220;1_2&#8243; global_parent=&#8220;7759&#8243; _builder_version=&#8220;3.0.47&#8243; custom_padding=&#8220;|||&#8220; custom_padding__hover=&#8220;|||&#8220;][et_pb_text admin_label=&#8220;Fragen?&#8220; global_parent=&#8220;7759&#8243; _builder_version=&#8220;3.25.3&#8243; text_font_size=&#8220;26px&#8220; text_line_height=&#8220;1.3em&#8220; background_layout=&#8220;dark&#8220; z_index_tablet=&#8220;500&#8243; text_text_shadow_horizontal_length_tablet=&#8220;0px&#8220; text_text_shadow_vertical_length_tablet=&#8220;0px&#8220; text_text_shadow_blur_strength_tablet=&#8220;1px&#8220; link_text_shadow_horizontal_length_tablet=&#8220;0px&#8220; link_text_shadow_vertical_length_tablet=&#8220;0px&#8220; link_text_shadow_blur_strength_tablet=&#8220;1px&#8220; ul_text_shadow_horizontal_length_tablet=&#8220;0px&#8220; ul_text_shadow_vertical_length_tablet=&#8220;0px&#8220; ul_text_shadow_blur_strength_tablet=&#8220;1px&#8220; ol_text_shadow_horizontal_length_tablet=&#8220;0px&#8220; ol_text_shadow_vertical_length_tablet=&#8220;0px&#8220; ol_text_shadow_blur_strength_tablet=&#8220;1px&#8220; quote_text_shadow_horizontal_length_tablet=&#8220;0px&#8220; quote_text_shadow_vertical_length_tablet=&#8220;0px&#8220; quote_text_shadow_blur_strength_tablet=&#8220;1px&#8220; header_text_shadow_horizontal_length_tablet=&#8220;0px&#8220; header_text_shadow_vertical_length_tablet=&#8220;0px&#8220; header_text_shadow_blur_strength_tablet=&#8220;1px&#8220; header_2_text_shadow_horizontal_length_tablet=&#8220;0px&#8220; header_2_text_shadow_vertical_length_tablet=&#8220;0px&#8220; header_2_text_shadow_blur_strength_tablet=&#8220;1px&#8220; header_3_text_shadow_horizontal_length_tablet=&#8220;0px&#8220; header_3_text_shadow_vertical_length_tablet=&#8220;0px&#8220; header_3_text_shadow_blur_strength_tablet=&#8220;1px&#8220; header_4_text_shadow_horizontal_length_tablet=&#8220;0px&#8220; header_4_text_shadow_vertical_length_tablet=&#8220;0px&#8220; header_4_text_shadow_blur_strength_tablet=&#8220;1px&#8220; header_5_text_shadow_horizontal_length_tablet=&#8220;0px&#8220; header_5_text_shadow_vertical_length_tablet=&#8220;0px&#8220; header_5_text_shadow_blur_strength_tablet=&#8220;1px&#8220; header_6_text_shadow_horizontal_length_tablet=&#8220;0px&#8220; header_6_text_shadow_vertical_length_tablet=&#8220;0px&#8220; header_6_text_shadow_blur_strength_tablet=&#8220;1px&#8220; box_shadow_horizontal_tablet=&#8220;0px&#8220; box_shadow_vertical_tablet=&#8220;0px&#8220; box_shadow_blur_tablet=&#8220;40px&#8220; box_shadow_spread_tablet=&#8220;0px&#8220;]<\/p>\n<p class=\"p1 translation-block\"><strong>Do you have questions, suggestions, ideas or specific projects? We are looking forward to talking to you!<\/strong><\/p>\n<p>[\/et_pb_text][\/et_pb_column][et_pb_column type=&#8220;1_2&#8243; global_parent=&#8220;7759&#8243; _builder_version=&#8220;3.0.47&#8243; custom_padding=&#8220;|||&#8220; custom_padding__hover=&#8220;|||&#8220;][et_pb_text admin_label=&#8220;Kontakt + Stellen&#8220; global_parent=&#8220;7759&#8243; _builder_version=&#8220;3.25.3&#8243; text_font_size=&#8220;26px&#8220; text_line_height=&#8220;1.3em&#8220; background_layout=&#8220;dark&#8220; z_index_tablet=&#8220;500&#8243; text_text_shadow_horizontal_length_tablet=&#8220;0px&#8220; text_text_shadow_vertical_length_tablet=&#8220;0px&#8220; text_text_shadow_blur_strength_tablet=&#8220;1px&#8220; link_text_shadow_horizontal_length_tablet=&#8220;0px&#8220; link_text_shadow_vertical_length_tablet=&#8220;0px&#8220; link_text_shadow_blur_strength_tablet=&#8220;1px&#8220; ul_text_shadow_horizontal_length_tablet=&#8220;0px&#8220; ul_text_shadow_vertical_length_tablet=&#8220;0px&#8220; ul_text_shadow_blur_strength_tablet=&#8220;1px&#8220; ol_text_shadow_horizontal_length_tablet=&#8220;0px&#8220; ol_text_shadow_vertical_length_tablet=&#8220;0px&#8220; ol_text_shadow_blur_strength_tablet=&#8220;1px&#8220; quote_text_shadow_horizontal_length_tablet=&#8220;0px&#8220; quote_text_shadow_vertical_length_tablet=&#8220;0px&#8220; quote_text_shadow_blur_strength_tablet=&#8220;1px&#8220; header_text_shadow_horizontal_length_tablet=&#8220;0px&#8220; header_text_shadow_vertical_length_tablet=&#8220;0px&#8220; header_text_shadow_blur_strength_tablet=&#8220;1px&#8220; header_2_text_shadow_horizontal_length_tablet=&#8220;0px&#8220; header_2_text_shadow_vertical_length_tablet=&#8220;0px&#8220; header_2_text_shadow_blur_strength_tablet=&#8220;1px&#8220; header_3_text_shadow_horizontal_length_tablet=&#8220;0px&#8220; header_3_text_shadow_vertical_length_tablet=&#8220;0px&#8220; header_3_text_shadow_blur_strength_tablet=&#8220;1px&#8220; header_4_text_shadow_horizontal_length_tablet=&#8220;0px&#8220; header_4_text_shadow_vertical_length_tablet=&#8220;0px&#8220; header_4_text_shadow_blur_strength_tablet=&#8220;1px&#8220; header_5_text_shadow_horizontal_length_tablet=&#8220;0px&#8220; header_5_text_shadow_vertical_length_tablet=&#8220;0px&#8220; header_5_text_shadow_blur_strength_tablet=&#8220;1px&#8220; header_6_text_shadow_horizontal_length_tablet=&#8220;0px&#8220; header_6_text_shadow_vertical_length_tablet=&#8220;0px&#8220; header_6_text_shadow_blur_strength_tablet=&#8220;1px&#8220; box_shadow_horizontal_tablet=&#8220;0px&#8220; box_shadow_vertical_tablet=&#8220;0px&#8220; box_shadow_blur_tablet=&#8220;40px&#8220; box_shadow_spread_tablet=&#8220;0px&#8220;]<\/p>\n<p><span style=\"color: #ffffff;\">\u00a0<\/span><br \/><span style=\"color: #ffffff;\">\u00a0<\/span><br \/><span style=\"color: #ffffff;\">\u2192 <a class=\"weiss\" style=\"color: #ffffff;\" href=\"https:\/\/innohub13.de\/en\/team\/\">Contact<\/a><\/span><br \/><span style=\"color: #ffffff;\">\u2192 <a class=\"weiss\" style=\"color: #ffffff;\" href=\"https:\/\/innohub13.de\/en\/stellenangebote\/\">Job offers<\/a><\/span><\/p>\n<p>[\/et_pb_text][\/et_pb_column][\/et_pb_row][et_pb_row global_parent=&#8220;7759&#8243; _builder_version=&#8220;3.25&#8243; background_size=&#8220;initial&#8220; background_position=&#8220;top_left&#8220; background_repeat=&#8220;repeat&#8220; column_structure=&#8220;1_2,1_2&#8243;][et_pb_column type=&#8220;1_2&#8243; global_parent=&#8220;7759&#8243; _builder_version=&#8220;3.0.47&#8243; custom_padding=&#8220;|||&#8220; custom_padding__hover=&#8220;|||&#8220;][et_pb_blurb admin_label=&#8220;THWi Kontakt&#8220; global_parent=&#8220;7759&#8243; title=&#8220;Technische Hochschule Wildau&#8220; _builder_version=&#8220;3.25.3&#8243; header_font=&#8220;|600|||||||&#8220; header_font_size=&#8220;23px&#8220; header_line_height=&#8220;1.3em&#8220; body_text_color=&#8220;#ffffff&#8220; body_font_size=&#8220;20px&#8220; body_line_height=&#8220;1.3em&#8220; border_width_top=&#8220;2px&#8220; border_color_top=&#8220;#ffffff&#8220; background_layout=&#8220;dark&#8220; custom_padding=&#8220;10px|||&#8220; z_index_tablet=&#8220;500&#8243; header_text_shadow_horizontal_length_tablet=&#8220;0px&#8220; header_text_shadow_vertical_length_tablet=&#8220;0px&#8220; header_text_shadow_blur_strength_tablet=&#8220;1px&#8220; body_text_shadow_horizontal_length_tablet=&#8220;0px&#8220; body_text_shadow_vertical_length_tablet=&#8220;0px&#8220; body_text_shadow_blur_strength_tablet=&#8220;1px&#8220; body_link_text_shadow_horizontal_length_tablet=&#8220;0px&#8220; body_link_text_shadow_vertical_length_tablet=&#8220;0px&#8220; body_link_text_shadow_blur_strength_tablet=&#8220;1px&#8220; body_ul_text_shadow_horizontal_length_tablet=&#8220;0px&#8220; body_ul_text_shadow_vertical_length_tablet=&#8220;0px&#8220; body_ul_text_shadow_blur_strength_tablet=&#8220;1px&#8220; body_ol_text_shadow_horizontal_length_tablet=&#8220;0px&#8220; body_ol_text_shadow_vertical_length_tablet=&#8220;0px&#8220; body_ol_text_shadow_blur_strength_tablet=&#8220;1px&#8220; body_quote_text_shadow_horizontal_length_tablet=&#8220;0px&#8220; body_quote_text_shadow_vertical_length_tablet=&#8220;0px&#8220; body_quote_text_shadow_blur_strength_tablet=&#8220;1px&#8220; border_width_top_tablet=&#8220;2px&#8220; border_width_top_phone=&#8220;2px&#8220; box_shadow_horizontal_tablet=&#8220;0px&#8220; box_shadow_vertical_tablet=&#8220;0px&#8220; box_shadow_blur_tablet=&#8220;40px&#8220; box_shadow_spread_tablet=&#8220;0px&#8220; box_shadow_horizontal_image_tablet=&#8220;0px&#8220; box_shadow_vertical_image_tablet=&#8220;0px&#8220; box_shadow_blur_image_tablet=&#8220;40px&#8220; box_shadow_spread_image_tablet=&#8220;0px&#8220; text_shadow_horizontal_length_tablet=&#8220;0px&#8220; text_shadow_vertical_length_tablet=&#8220;0px&#8220; text_shadow_blur_strength_tablet=&#8220;1px&#8220;]<\/p>\n<p>Hochschulring 1<br \/>15745 Wildau<\/p>\n<p><span style=\"color: #ffffff;\">\u2192 <a class=\"weiss\" style=\"color: #ffffff;\" href=\"https:\/\/goo.gl\/maps\/4xCb66MYwVwR337A9\">Map<\/a><\/span><\/p>\n<p><span style=\"color: #ffffff;\">\u2192 <a class=\"weiss\" style=\"color: #ffffff;\" href=\"https:\/\/www.th-wildau.de\/\">www.th-wildau.de<\/a><\/span><\/p>\n<p>[\/et_pb_blurb][\/et_pb_column][et_pb_column type=&#8220;1_2&#8243; global_parent=&#8220;7759&#8243; _builder_version=&#8220;3.0.47&#8243; custom_padding=&#8220;|||&#8220; custom_padding__hover=&#8220;|||&#8220;][et_pb_blurb admin_label=&#8220;BTU-CS Kontakt&#8220; global_parent=&#8220;7759&#8243; title=&#8220;Brandenburgische Technische Universit\u00e4t Cottbus-Senftenberg&#8220; _builder_version=&#8220;3.25.3&#8243; header_font=&#8220;|600|||||||&#8220; header_font_size=&#8220;23px&#8220; header_line_height=&#8220;1.3em&#8220; body_text_color=&#8220;#ffffff&#8220; body_font_size=&#8220;20px&#8220; body_line_height=&#8220;1.3em&#8220; border_width_top=&#8220;2px&#8220; border_color_top=&#8220;#ffffff&#8220; background_layout=&#8220;dark&#8220; custom_padding=&#8220;10px|||&#8220; z_index_tablet=&#8220;500&#8243; header_text_shadow_horizontal_length_tablet=&#8220;0px&#8220; header_text_shadow_vertical_length_tablet=&#8220;0px&#8220; header_text_shadow_blur_strength_tablet=&#8220;1px&#8220; body_text_shadow_horizontal_length_tablet=&#8220;0px&#8220; body_text_shadow_vertical_length_tablet=&#8220;0px&#8220; body_text_shadow_blur_strength_tablet=&#8220;1px&#8220; body_link_text_shadow_horizontal_length_tablet=&#8220;0px&#8220; body_link_text_shadow_vertical_length_tablet=&#8220;0px&#8220; body_link_text_shadow_blur_strength_tablet=&#8220;1px&#8220; body_ul_text_shadow_horizontal_length_tablet=&#8220;0px&#8220; body_ul_text_shadow_vertical_length_tablet=&#8220;0px&#8220; body_ul_text_shadow_blur_strength_tablet=&#8220;1px&#8220; body_ol_text_shadow_horizontal_length_tablet=&#8220;0px&#8220; body_ol_text_shadow_vertical_length_tablet=&#8220;0px&#8220; body_ol_text_shadow_blur_strength_tablet=&#8220;1px&#8220; body_quote_text_shadow_horizontal_length_tablet=&#8220;0px&#8220; body_quote_text_shadow_vertical_length_tablet=&#8220;0px&#8220; body_quote_text_shadow_blur_strength_tablet=&#8220;1px&#8220; border_width_top_tablet=&#8220;2px&#8220; border_width_top_phone=&#8220;2px&#8220; box_shadow_horizontal_tablet=&#8220;0px&#8220; box_shadow_vertical_tablet=&#8220;0px&#8220; box_shadow_blur_tablet=&#8220;40px&#8220; box_shadow_spread_tablet=&#8220;0px&#8220; box_shadow_horizontal_image_tablet=&#8220;0px&#8220; box_shadow_vertical_image_tablet=&#8220;0px&#8220; box_shadow_blur_image_tablet=&#8220;40px&#8220; box_shadow_spread_image_tablet=&#8220;0px&#8220; text_shadow_horizontal_length_tablet=&#8220;0px&#8220; text_shadow_vertical_length_tablet=&#8220;0px&#8220; text_shadow_blur_strength_tablet=&#8220;1px&#8220;]<\/p>\n<p>Platz der Deutschen Einheit 1<br \/>03046 Cottbus<\/p>\n<p><span style=\"color: #ffffff;\">\u2192\u00a0<a class=\"weiss\" style=\"color: #ffffff;\" href=\"https:\/\/goo.gl\/maps\/1zkRDtLJQwSJawEB7\">Map<\/a><\/span><\/p>\n<p><span style=\"color: #ffffff;\">\u2192\u00a0<a class=\"weiss\" style=\"color: #ffffff;\" href=\"https:\/\/www.b-tu.de\/\">www.b-tu.de<\/a><\/span><\/p>\n<p>[\/et_pb_blurb][\/et_pb_column][\/et_pb_row][et_pb_row global_parent=&#8220;7759&#8243; custom_padding=&#8220;10px|||&#8220; _builder_version=&#8220;3.25.3&#8243; border_width_top=&#8220;2px&#8220; border_color_top=&#8220;#ffffff&#8220; z_index_tablet=&#8220;500&#8243; border_width_top_tablet=&#8220;2px&#8220; border_width_top_phone=&#8220;2px&#8220; box_shadow_horizontal_tablet=&#8220;0px&#8220; box_shadow_vertical_tablet=&#8220;0px&#8220; box_shadow_blur_tablet=&#8220;40px&#8220; box_shadow_spread_tablet=&#8220;0px&#8220; column_structure=&#8220;1_4,1_4,1_4,1_4&#8243;][et_pb_column type=&#8220;1_4&#8243; global_parent=&#8220;7759&#8243; _builder_version=&#8220;3.0.47&#8243; custom_padding=&#8220;|||&#8220; custom_padding__hover=&#8220;|||&#8220;][et_pb_text admin_label=&#8220;\u00a9 2020&#8243; global_parent=&#8220;7759&#8243; _builder_version=&#8220;3.25.3&#8243; text_font_size=&#8220;20px&#8220; text_line_height=&#8220;1.3em&#8220; background_layout=&#8220;dark&#8220; z_index_tablet=&#8220;500&#8243; text_text_shadow_horizontal_length_tablet=&#8220;0px&#8220; text_text_shadow_vertical_length_tablet=&#8220;0px&#8220; text_text_shadow_blur_strength_tablet=&#8220;1px&#8220; link_text_shadow_horizontal_length_tablet=&#8220;0px&#8220; link_text_shadow_vertical_length_tablet=&#8220;0px&#8220; link_text_shadow_blur_strength_tablet=&#8220;1px&#8220; ul_text_shadow_horizontal_length_tablet=&#8220;0px&#8220; ul_text_shadow_vertical_length_tablet=&#8220;0px&#8220; ul_text_shadow_blur_strength_tablet=&#8220;1px&#8220; ol_text_shadow_horizontal_length_tablet=&#8220;0px&#8220; ol_text_shadow_vertical_length_tablet=&#8220;0px&#8220; ol_text_shadow_blur_strength_tablet=&#8220;1px&#8220; quote_text_shadow_horizontal_length_tablet=&#8220;0px&#8220; quote_text_shadow_vertical_length_tablet=&#8220;0px&#8220; quote_text_shadow_blur_strength_tablet=&#8220;1px&#8220; header_text_shadow_horizontal_length_tablet=&#8220;0px&#8220; header_text_shadow_vertical_length_tablet=&#8220;0px&#8220; header_text_shadow_blur_strength_tablet=&#8220;1px&#8220; header_2_text_shadow_horizontal_length_tablet=&#8220;0px&#8220; header_2_text_shadow_vertical_length_tablet=&#8220;0px&#8220; header_2_text_shadow_blur_strength_tablet=&#8220;1px&#8220; header_3_text_shadow_horizontal_length_tablet=&#8220;0px&#8220; header_3_text_shadow_vertical_length_tablet=&#8220;0px&#8220; header_3_text_shadow_blur_strength_tablet=&#8220;1px&#8220; header_4_text_shadow_horizontal_length_tablet=&#8220;0px&#8220; header_4_text_shadow_vertical_length_tablet=&#8220;0px&#8220; header_4_text_shadow_blur_strength_tablet=&#8220;1px&#8220; header_5_text_shadow_horizontal_length_tablet=&#8220;0px&#8220; header_5_text_shadow_vertical_length_tablet=&#8220;0px&#8220; header_5_text_shadow_blur_strength_tablet=&#8220;1px&#8220; header_6_text_shadow_horizontal_length_tablet=&#8220;0px&#8220; header_6_text_shadow_vertical_length_tablet=&#8220;0px&#8220; header_6_text_shadow_blur_strength_tablet=&#8220;1px&#8220; box_shadow_horizontal_tablet=&#8220;0px&#8220; box_shadow_vertical_tablet=&#8220;0px&#8220; box_shadow_blur_tablet=&#8220;40px&#8220; box_shadow_spread_tablet=&#8220;0px&#8220;]<\/p>\n<p>\u00a9 2020<\/p>\n<p>[\/et_pb_text][\/et_pb_column][et_pb_column type=&#8220;1_4&#8243; global_parent=&#8220;7759&#8243; _builder_version=&#8220;3.0.47&#8243; custom_padding=&#8220;|||&#8220; custom_padding__hover=&#8220;|||&#8220;][et_pb_text admin_label=&#8220;Twitter&#8220; global_parent=&#8220;7759&#8243; _builder_version=&#8220;3.25.3&#8243; text_font_size=&#8220;20px&#8220; text_line_height=&#8220;1.3em&#8220; background_layout=&#8220;dark&#8220; z_index_tablet=&#8220;500&#8243; text_text_shadow_horizontal_length_tablet=&#8220;0px&#8220; text_text_shadow_vertical_length_tablet=&#8220;0px&#8220; text_text_shadow_blur_strength_tablet=&#8220;1px&#8220; link_text_shadow_horizontal_length_tablet=&#8220;0px&#8220; link_text_shadow_vertical_length_tablet=&#8220;0px&#8220; link_text_shadow_blur_strength_tablet=&#8220;1px&#8220; ul_text_shadow_horizontal_length_tablet=&#8220;0px&#8220; ul_text_shadow_vertical_length_tablet=&#8220;0px&#8220; ul_text_shadow_blur_strength_tablet=&#8220;1px&#8220; ol_text_shadow_horizontal_length_tablet=&#8220;0px&#8220; ol_text_shadow_vertical_length_tablet=&#8220;0px&#8220; ol_text_shadow_blur_strength_tablet=&#8220;1px&#8220; quote_text_shadow_horizontal_length_tablet=&#8220;0px&#8220; quote_text_shadow_vertical_length_tablet=&#8220;0px&#8220; quote_text_shadow_blur_strength_tablet=&#8220;1px&#8220; header_text_shadow_horizontal_length_tablet=&#8220;0px&#8220; header_text_shadow_vertical_length_tablet=&#8220;0px&#8220; header_text_shadow_blur_strength_tablet=&#8220;1px&#8220; header_2_text_shadow_horizontal_length_tablet=&#8220;0px&#8220; header_2_text_shadow_vertical_length_tablet=&#8220;0px&#8220; header_2_text_shadow_blur_strength_tablet=&#8220;1px&#8220; header_3_text_shadow_horizontal_length_tablet=&#8220;0px&#8220; header_3_text_shadow_vertical_length_tablet=&#8220;0px&#8220; header_3_text_shadow_blur_strength_tablet=&#8220;1px&#8220; header_4_text_shadow_horizontal_length_tablet=&#8220;0px&#8220; header_4_text_shadow_vertical_length_tablet=&#8220;0px&#8220; header_4_text_shadow_blur_strength_tablet=&#8220;1px&#8220; header_5_text_shadow_horizontal_length_tablet=&#8220;0px&#8220; header_5_text_shadow_vertical_length_tablet=&#8220;0px&#8220; header_5_text_shadow_blur_strength_tablet=&#8220;1px&#8220; header_6_text_shadow_horizontal_length_tablet=&#8220;0px&#8220; header_6_text_shadow_vertical_length_tablet=&#8220;0px&#8220; header_6_text_shadow_blur_strength_tablet=&#8220;1px&#8220; box_shadow_horizontal_tablet=&#8220;0px&#8220; box_shadow_vertical_tablet=&#8220;0px&#8220; box_shadow_blur_tablet=&#8220;40px&#8220; box_shadow_spread_tablet=&#8220;0px&#8220;]<\/p>\n<p><span style=\"color: #ffffff;\"><a class=\"weiss\" style=\"color: #ffffff;\" href=\"https:\/\/twitter.com\/innohub13\">\u2192 Twitter (mostly in German language)<\/a><\/span><\/p>\n<p>[\/et_pb_text][\/et_pb_column][et_pb_column type=&#8220;1_4&#8243; global_parent=&#8220;7759&#8243; _builder_version=&#8220;3.0.47&#8243; custom_padding=&#8220;|||&#8220; custom_padding__hover=&#8220;|||&#8220;][et_pb_text admin_label=&#8220;Impressum&#8220; global_parent=&#8220;7759&#8243; _builder_version=&#8220;3.25.3&#8243; text_font_size=&#8220;20px&#8220; text_line_height=&#8220;1.3em&#8220; background_layout=&#8220;dark&#8220; z_index_tablet=&#8220;500&#8243; text_text_shadow_horizontal_length_tablet=&#8220;0px&#8220; text_text_shadow_vertical_length_tablet=&#8220;0px&#8220; text_text_shadow_blur_strength_tablet=&#8220;1px&#8220; link_text_shadow_horizontal_length_tablet=&#8220;0px&#8220; link_text_shadow_vertical_length_tablet=&#8220;0px&#8220; link_text_shadow_blur_strength_tablet=&#8220;1px&#8220; ul_text_shadow_horizontal_length_tablet=&#8220;0px&#8220; ul_text_shadow_vertical_length_tablet=&#8220;0px&#8220; ul_text_shadow_blur_strength_tablet=&#8220;1px&#8220; ol_text_shadow_horizontal_length_tablet=&#8220;0px&#8220; ol_text_shadow_vertical_length_tablet=&#8220;0px&#8220; ol_text_shadow_blur_strength_tablet=&#8220;1px&#8220; quote_text_shadow_horizontal_length_tablet=&#8220;0px&#8220; quote_text_shadow_vertical_length_tablet=&#8220;0px&#8220; quote_text_shadow_blur_strength_tablet=&#8220;1px&#8220; header_text_shadow_horizontal_length_tablet=&#8220;0px&#8220; header_text_shadow_vertical_length_tablet=&#8220;0px&#8220; header_text_shadow_blur_strength_tablet=&#8220;1px&#8220; header_2_text_shadow_horizontal_length_tablet=&#8220;0px&#8220; header_2_text_shadow_vertical_length_tablet=&#8220;0px&#8220; header_2_text_shadow_blur_strength_tablet=&#8220;1px&#8220; header_3_text_shadow_horizontal_length_tablet=&#8220;0px&#8220; header_3_text_shadow_vertical_length_tablet=&#8220;0px&#8220; header_3_text_shadow_blur_strength_tablet=&#8220;1px&#8220; header_4_text_shadow_horizontal_length_tablet=&#8220;0px&#8220; header_4_text_shadow_vertical_length_tablet=&#8220;0px&#8220; header_4_text_shadow_blur_strength_tablet=&#8220;1px&#8220; header_5_text_shadow_horizontal_length_tablet=&#8220;0px&#8220; header_5_text_shadow_vertical_length_tablet=&#8220;0px&#8220; header_5_text_shadow_blur_strength_tablet=&#8220;1px&#8220; header_6_text_shadow_horizontal_length_tablet=&#8220;0px&#8220; header_6_text_shadow_vertical_length_tablet=&#8220;0px&#8220; header_6_text_shadow_blur_strength_tablet=&#8220;1px&#8220; box_shadow_horizontal_tablet=&#8220;0px&#8220; box_shadow_vertical_tablet=&#8220;0px&#8220; box_shadow_blur_tablet=&#8220;40px&#8220; box_shadow_spread_tablet=&#8220;0px&#8220;]<\/p>\n<p><span style=\"color: #ffffff;\"><a class=\"weiss\" style=\"color: #ffffff;\" href=\"https:\/\/innohub13.de\/en\/impressum\/\">\u2192 Imprint<\/a><\/span><\/p>\n<\/p>\n<p>[\/et_pb_text][\/et_pb_column][et_pb_column type=&#8220;1_4&#8243; global_parent=&#8220;7759&#8243; _builder_version=&#8220;3.0.47&#8243; custom_padding=&#8220;|||&#8220; custom_padding__hover=&#8220;|||&#8220;][et_pb_text admin_label=&#8220;Datenschutz&#8220; global_parent=&#8220;7759&#8243; _builder_version=&#8220;3.25.3&#8243; text_font_size=&#8220;20px&#8220; text_line_height=&#8220;1.3em&#8220; background_layout=&#8220;dark&#8220; z_index_tablet=&#8220;500&#8243; text_text_shadow_horizontal_length_tablet=&#8220;0px&#8220; text_text_shadow_vertical_length_tablet=&#8220;0px&#8220; text_text_shadow_blur_strength_tablet=&#8220;1px&#8220; link_text_shadow_horizontal_length_tablet=&#8220;0px&#8220; link_text_shadow_vertical_length_tablet=&#8220;0px&#8220; link_text_shadow_blur_strength_tablet=&#8220;1px&#8220; ul_text_shadow_horizontal_length_tablet=&#8220;0px&#8220; ul_text_shadow_vertical_length_tablet=&#8220;0px&#8220; ul_text_shadow_blur_strength_tablet=&#8220;1px&#8220; ol_text_shadow_horizontal_length_tablet=&#8220;0px&#8220; ol_text_shadow_vertical_length_tablet=&#8220;0px&#8220; ol_text_shadow_blur_strength_tablet=&#8220;1px&#8220; quote_text_shadow_horizontal_length_tablet=&#8220;0px&#8220; quote_text_shadow_vertical_length_tablet=&#8220;0px&#8220; quote_text_shadow_blur_strength_tablet=&#8220;1px&#8220; header_text_shadow_horizontal_length_tablet=&#8220;0px&#8220; header_text_shadow_vertical_length_tablet=&#8220;0px&#8220; header_text_shadow_blur_strength_tablet=&#8220;1px&#8220; header_2_text_shadow_horizontal_length_tablet=&#8220;0px&#8220; header_2_text_shadow_vertical_length_tablet=&#8220;0px&#8220; header_2_text_shadow_blur_strength_tablet=&#8220;1px&#8220; header_3_text_shadow_horizontal_length_tablet=&#8220;0px&#8220; header_3_text_shadow_vertical_length_tablet=&#8220;0px&#8220; header_3_text_shadow_blur_strength_tablet=&#8220;1px&#8220; header_4_text_shadow_horizontal_length_tablet=&#8220;0px&#8220; header_4_text_shadow_vertical_length_tablet=&#8220;0px&#8220; header_4_text_shadow_blur_strength_tablet=&#8220;1px&#8220; header_5_text_shadow_horizontal_length_tablet=&#8220;0px&#8220; header_5_text_shadow_vertical_length_tablet=&#8220;0px&#8220; header_5_text_shadow_blur_strength_tablet=&#8220;1px&#8220; header_6_text_shadow_horizontal_length_tablet=&#8220;0px&#8220; header_6_text_shadow_vertical_length_tablet=&#8220;0px&#8220; header_6_text_shadow_blur_strength_tablet=&#8220;1px&#8220; box_shadow_horizontal_tablet=&#8220;0px&#8220; box_shadow_vertical_tablet=&#8220;0px&#8220; box_shadow_blur_tablet=&#8220;40px&#8220; box_shadow_spread_tablet=&#8220;0px&#8220;]<\/p>\n<p><span style=\"color: #ffffff;\"><a class=\"weiss\" style=\"color: #ffffff;\" href=\"https:\/\/innohub13.de\/en\/datenschutz\/\">\u2192 Data protection<\/a><\/span><\/p>\n<p>[\/et_pb_text][\/et_pb_column][\/et_pb_row][\/et_pb_section][et_pb_section bb_built=&#8220;1&#8243; specialty=&#8220;off&#8220; inner_width_tablet=&#8220;50px&#8220; inner_max_width_tablet=&#8220;100px&#8220; inner_max_width_phone=&#8220;50px&#8220; _builder_version=&#8220;3.25.3&#8243; box_shadow_horizontal_tablet=&#8220;0px&#8220; box_shadow_vertical_tablet=&#8220;0px&#8220; box_shadow_blur_tablet=&#8220;40px&#8220; box_shadow_spread_tablet=&#8220;0px&#8220; z_index_tablet=&#8220;500&#8243; gutter_width=&#8220;2&#8243; custom_margin=&#8220;0px||0px|&#8220; custom_padding=&#8220;0px||0px|&#8220; global_module=&#8220;7758&#8243; prev_background_color=&#8220;#005ca9&#8243;][et_pb_row global_parent=&#8220;7758&#8243; _builder_version=&#8220;3.25.3&#8243; custom_margin=&#8220;||0px|&#8220; custom_padding=&#8220;||0px|&#8220; box_shadow_horizontal_tablet=&#8220;0px&#8220; box_shadow_vertical_tablet=&#8220;0px&#8220; box_shadow_blur_tablet=&#8220;40px&#8220; box_shadow_spread_tablet=&#8220;0px&#8220; z_index_tablet=&#8220;500&#8243;][et_pb_column type=&#8220;4_4&#8243; global_parent=&#8220;7758&#8243; custom_padding__hover=&#8220;|||&#8220; custom_padding=&#8220;|||&#8220;][et_pb_text admin_label=&#8220;F\u00f6rdersatz&#8220; global_parent=&#8220;7758&#8243; _builder_version=&#8220;3.25.3&#8243; text_text_shadow_horizontal_length=&#8220;text_text_shadow_style,%91object Object%93&#8243; text_text_shadow_horizontal_length_tablet=&#8220;0px&#8220; text_text_shadow_vertical_length=&#8220;text_text_shadow_style,%91object Object%93&#8243; text_text_shadow_vertical_length_tablet=&#8220;0px&#8220; text_text_shadow_blur_strength=&#8220;text_text_shadow_style,%91object Object%93&#8243; text_text_shadow_blur_strength_tablet=&#8220;1px&#8220; link_text_shadow_horizontal_length=&#8220;link_text_shadow_style,%91object Object%93&#8243; link_text_shadow_horizontal_length_tablet=&#8220;0px&#8220; link_text_shadow_vertical_length=&#8220;link_text_shadow_style,%91object Object%93&#8243; link_text_shadow_vertical_length_tablet=&#8220;0px&#8220; link_text_shadow_blur_strength=&#8220;link_text_shadow_style,%91object Object%93&#8243; link_text_shadow_blur_strength_tablet=&#8220;1px&#8220; ul_text_shadow_horizontal_length=&#8220;ul_text_shadow_style,%91object Object%93&#8243; ul_text_shadow_horizontal_length_tablet=&#8220;0px&#8220; ul_text_shadow_vertical_length=&#8220;ul_text_shadow_style,%91object Object%93&#8243; ul_text_shadow_vertical_length_tablet=&#8220;0px&#8220; ul_text_shadow_blur_strength=&#8220;ul_text_shadow_style,%91object Object%93&#8243; ul_text_shadow_blur_strength_tablet=&#8220;1px&#8220; ol_text_shadow_horizontal_length=&#8220;ol_text_shadow_style,%91object Object%93&#8243; ol_text_shadow_horizontal_length_tablet=&#8220;0px&#8220; ol_text_shadow_vertical_length=&#8220;ol_text_shadow_style,%91object Object%93&#8243; ol_text_shadow_vertical_length_tablet=&#8220;0px&#8220; ol_text_shadow_blur_strength=&#8220;ol_text_shadow_style,%91object Object%93&#8243; ol_text_shadow_blur_strength_tablet=&#8220;1px&#8220; quote_text_shadow_horizontal_length=&#8220;quote_text_shadow_style,%91object Object%93&#8243; quote_text_shadow_horizontal_length_tablet=&#8220;0px&#8220; quote_text_shadow_vertical_length=&#8220;quote_text_shadow_style,%91object Object%93&#8243; quote_text_shadow_vertical_length_tablet=&#8220;0px&#8220; quote_text_shadow_blur_strength=&#8220;quote_text_shadow_style,%91object Object%93&#8243; quote_text_shadow_blur_strength_tablet=&#8220;1px&#8220; header_text_shadow_horizontal_length=&#8220;header_text_shadow_style,%91object Object%93&#8243; header_text_shadow_horizontal_length_tablet=&#8220;0px&#8220; header_text_shadow_vertical_length=&#8220;header_text_shadow_style,%91object Object%93&#8243; header_text_shadow_vertical_length_tablet=&#8220;0px&#8220; header_text_shadow_blur_strength=&#8220;header_text_shadow_style,%91object Object%93&#8243; header_text_shadow_blur_strength_tablet=&#8220;1px&#8220; header_2_text_shadow_horizontal_length=&#8220;header_2_text_shadow_style,%91object Object%93&#8243; header_2_text_shadow_horizontal_length_tablet=&#8220;0px&#8220; header_2_text_shadow_vertical_length=&#8220;header_2_text_shadow_style,%91object Object%93&#8243; header_2_text_shadow_vertical_length_tablet=&#8220;0px&#8220; header_2_text_shadow_blur_strength=&#8220;header_2_text_shadow_style,%91object Object%93&#8243; header_2_text_shadow_blur_strength_tablet=&#8220;1px&#8220; header_3_text_shadow_horizontal_length=&#8220;header_3_text_shadow_style,%91object Object%93&#8243; header_3_text_shadow_horizontal_length_tablet=&#8220;0px&#8220; header_3_text_shadow_vertical_length=&#8220;header_3_text_shadow_style,%91object Object%93&#8243; header_3_text_shadow_vertical_length_tablet=&#8220;0px&#8220; header_3_text_shadow_blur_strength=&#8220;header_3_text_shadow_style,%91object Object%93&#8243; header_3_text_shadow_blur_strength_tablet=&#8220;1px&#8220; header_4_text_shadow_horizontal_length=&#8220;header_4_text_shadow_style,%91object Object%93&#8243; header_4_text_shadow_horizontal_length_tablet=&#8220;0px&#8220; header_4_text_shadow_vertical_length=&#8220;header_4_text_shadow_style,%91object Object%93&#8243; header_4_text_shadow_vertical_length_tablet=&#8220;0px&#8220; header_4_text_shadow_blur_strength=&#8220;header_4_text_shadow_style,%91object Object%93&#8243; header_4_text_shadow_blur_strength_tablet=&#8220;1px&#8220; header_5_text_shadow_horizontal_length=&#8220;header_5_text_shadow_style,%91object Object%93&#8243; header_5_text_shadow_horizontal_length_tablet=&#8220;0px&#8220; header_5_text_shadow_vertical_length=&#8220;header_5_text_shadow_style,%91object Object%93&#8243; header_5_text_shadow_vertical_length_tablet=&#8220;0px&#8220; header_5_text_shadow_blur_strength=&#8220;header_5_text_shadow_style,%91object Object%93&#8243; header_5_text_shadow_blur_strength_tablet=&#8220;1px&#8220; header_6_text_shadow_horizontal_length=&#8220;header_6_text_shadow_style,%91object Object%93&#8243; header_6_text_shadow_horizontal_length_tablet=&#8220;0px&#8220; header_6_text_shadow_vertical_length=&#8220;header_6_text_shadow_style,%91object Object%93&#8243; header_6_text_shadow_vertical_length_tablet=&#8220;0px&#8220; header_6_text_shadow_blur_strength=&#8220;header_6_text_shadow_style,%91object Object%93&#8243; header_6_text_shadow_blur_strength_tablet=&#8220;1px&#8220; box_shadow_horizontal_tablet=&#8220;0px&#8220; box_shadow_vertical_tablet=&#8220;0px&#8220; box_shadow_blur_tablet=&#8220;40px&#8220; box_shadow_spread_tablet=&#8220;0px&#8220; z_index_tablet=&#8220;500&#8243; custom_margin=&#8220;||0px|&#8220; custom_padding=&#8220;||0px|&#8220;]<\/p>\n<p class=\" translation-block\">The <strong>\"Innovation Hub 13 - Fast Track to Transfer\" <\/strong>of the Technical University of Wildau and the Brandenburg Technical University of Cottbus-Senftenberg is one of the 29 selected winners of the federal government funding initiative \"Innovative College\", equipped with funds of the Federal Ministry of Education and Research BMBF And the state of Brandenburg. Further information can be found at <a href=\"https:\/\/www.innovative-hochschule.de\/de\/startseite\" target=\"_blank\" rel=\"noopener noreferrer external\" data-wpel-link=\"external\" class=\"wpel-icon-right\">www.innovative-hochschule.de<span class=\"wpel-icon wpel-image wpel-icon-6\"><\/span><\/a><\/p>\n<p>[\/et_pb_text][et_pb_image admin_label=&#8220;Logoleiste&#8220; global_parent=&#8220;7758&#8243; _builder_version=&#8220;3.25.3&#8243; src=&#8220;https:\/\/innohub13.de\/wp-content\/uploads\/Logoleiste_InnovationHub13_Webseite.png&#8220; box_shadow_horizontal_tablet=&#8220;0px&#8220; box_shadow_vertical_tablet=&#8220;0px&#8220; box_shadow_blur_tablet=&#8220;40px&#8220; box_shadow_spread_tablet=&#8220;0px&#8220; z_index_tablet=&#8220;500&#8243; \/][\/et_pb_column][\/et_pb_row][\/et_pb_section]<\/p>","protected":false},"excerpt":{"rendered":"<p><div class=\"et_pb_row et_pb_row_0 et_pb_row_empty\">\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t<\/div><div class=\"et_pb_module et_pb_text et_pb_text_0  et_pb_text_align_left et_pb_bg_layout_light\">\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t<\/div> Das Message Queue Telemetry Transport (kurz MQTT) Protokoll wird in diesem Projekt f\u00fcr die Kommunikation zwischen den verschiedenen Ger\u00e4ten genutzt. Der sowohl ISO- (ISO\/IEC PRF 20922), als auch OASIS-Standard [&hellip;]<\/p>","protected":false},"author":10,"featured_media":2169,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_et_pb_use_builder":"on","_et_pb_old_content":"<p>Das Message Queue Telemetry Transport (kurz MQTT) Protokoll wird in diesem Projekt f\u00fcr die Kommunikation zwischen den verschiedenen Ger\u00e4ten genutzt. Der sowohl ISO- (ISO\/IEC PRF 20922), als auch OASIS-Standard MQTT gilt mittlerweile als der <a href=\"https:\/\/developer.ibm.com\/dwblog\/2016\/mqtt-de-facto-standard-iso-messaging\/?s_tact=C43301PW\">de facto Standard des IoT<\/a> und findet auch zunehmend Anwendung in industriellen Umgebungen. Das offene Nachrichtenprotokoll ist f\u00fcr die Machine-to-Machine-Kommunikation (M2M) konzipiert und hat einen <a href=\"http:\/\/www.steves-internet-guide.com\/mqtt-protocol-messages-overview\/\">kleinen Overhead<\/a>, wodurch die Menge der transferierten Daten gering gehalten und das jeweilige Netzwerk nur wenig belastet wird. Diese ressourcenschonende Art der Kommunikation eignet sich bestens f\u00fcr die Kommunikation zwischen vielen Akteuren und ist daher pr\u00e4destiniert f\u00fcr IoT-Szenarien, zu welchen auch der vorliegende Anwendungsfall \u2013 das vernetzte Testbed \u2013 z\u00e4hlt.<\/p><p>Die \u00dcbermittlung der Daten erfolgt eventbasiert \u00fcber einen zentralen Broker. Eine MQTT-Nachricht besteht immer aus mindestens dem Topic und der Payload, dem eigentlichen Inhalt der Nachricht. Der Inhalt der Payload ist f\u00fcr den Broker irrelevant, denn alle Daten werden BASE64-codiert \u00fcbertragen. Topics hingegen werden genutzt um die Kommunikation zwischen den unterschiedlichen Teilnehmern (Clients) zu organisieren und haben eine hierarchische Struktur (siehe Abbildung 1). Der Name der Topics ist prinzipiell frei w\u00e4hlbar. Andere Teilnehmer (Clients) k\u00f6nnen diese Topics abonnieren (subscribe) und empfangen jede Nachricht, die auf dem entsprechenden Topic ver\u00f6ffentlicht wird (publish), irrelevant von welchem Client diese stammt.<\/p><p>Ein Client kann entweder ein (oder mehrere) spezifische Topics abonnieren oder mit Hilfe von Wildcards ganze Teile der Hierarchie auf einmal abonnieren. Das Zeichen \u201e+\u201c gilt dabei als Wildcard f\u00fcr eine einzelne Hierarchieebene und das Zeichen \u201e#\u201c, welches immer am Ende eines Topics stehen muss, gilt f\u00fcr alle folgenden Hierarchieebenen inkl. aller Unterebenen. Folgende Beispiele veranschaulichen die Funktionsweise der Wildcards in Topics des MQTT-Protokolls: <a href=\"https:\/\/www.hivemq.com\/blog\/mqtt-essentials-part-5-mqtt-topics-best-practices\">Beispiele von HiveMQ<\/a>.<\/p><p><strong>Optionale Eigenschaften eines MQTT-Clients<\/strong><\/p><p><u>Persistent Session<\/u><\/p><p>Wenn ein Client die Verbindung zum Server verliert, gewollt oder ungewollt, sind normalerweise alle abonnierten Topics verschwunden und m\u00fcssen neu hinzugef\u00fcgt werden. Dieses Verhalten wird \u201eClean Session\u201c bezeichnet. In bestimmten Anwendungsf\u00e4llen kann es allerdings sehr m\u00fchsam sein, zuvor abonnierte Topics wieder hinzuzuf\u00fcgen, wenn es sich z. B. um eine Vielzahl von Sensoren an unterschiedlichen Standorten handelt. F\u00fcr diese F\u00e4lle gibt es die M\u00f6glichkeit einer \u201ePersistent Session\u201c. Hier werden nicht nur die Topics eines Clients vom Server vorgehalten, sondern auch alle Nachrichten mit dem QoS Level 1 und 2, die den Client seit dem letzten Verbindungsabbruch nicht erreicht haben.<\/p><p><u>Last Will & Testament<\/u><\/p><p>MQTT-Clients ist es m\u00f6glich, dem Broker beim Verbinden eine \u201eLast Will & Testament\u201c (LWT) -Nachricht bekannt zu geben. Diese Nachricht wird gesendet, falls der Client die Verbindung zum Server ungewollt verliert. Dadurch l\u00e4sst sich z. B. eine \u00dcbersicht \u00fcber den Verbindungsstatus eines Clients realisieren<\/p><p><strong>Optionale Eigenschaften einer MQTT Nachricht<\/strong><\/p><p><u>Quality of Service<\/u><\/p><p>MQTT bietet f\u00fcr die Spezifizierung der Semantik des Nachrichtentransfers drei Level von Quality of Service (QoS) an. Daf\u00fcr sind im Header der Nachricht zwei Bit reserviert, die bei jeder Nachricht das Level angeben. Die Bedeutung der unterschiedlichen Level ist wie folgt:<\/p><ul><li>Level 0: Die Nachricht wird einmalig gesendet und anschlie\u00dfend verworfen. Damit ist nicht sichergestellt, dass diese ankommt.<\/li><li>Level 1: Es wird sichergestellt, dass die Nachricht mindestens einmal beim jedem Subscriber ankommt. Es kann aber vorkommen, dass die Nachricht mehrfach von einem Subscriber empfangen wird.<\/li><li>Level 2: Im h\u00f6chsten Level der QoS wird sichergestellt, dass die Nachricht genau einmal von den Subscribern empfangen wird.<\/li><\/ul><p>Je h\u00f6her das Level der QoS, desto h\u00f6her ist die ben\u00f6tigte Servicezeit des Brokers f\u00fcr die Nachrichtenverteilung. Die Verwendung des jeweiligen QoS-Levels h\u00e4ngt vom Einsatzfall ab und sollte nicht pauschal als Restriktion f\u00fcr alle vorgegeben werden.<\/p><p><u>Retained Messages<\/u><\/p><p>Nachrichten k\u00f6nnen vom sendenden Client als \u201eRetained Message\u201c (aufbewahrte Nachrichten) markiert werden. Diese werden vom Broker zwischengespeichert und jeder Client, der das Topic mit der Retained Message abonniert, bekommt automatisch die letzte Nachricht mit einer Retained Kennzeichnung. Bei Temperaturdaten kann es beispielsweise sinnvoll sein Retained Messages zu aktivieren, damit ein neuer Subscriber nicht auf die n\u00e4chste \u00c4nderung warten muss bis er den aktuellen Status empf\u00e4ngt, sondern sofort die letzte Meldung erh\u00e4lt.<\/p><p><strong>Sicherheit<\/strong><\/p><p>Da das MQTT Protokoll auf dem TCP\/IP Stack basiert, besteht die M\u00f6glichkeit einer standardisierten Verschl\u00fcsselung auf Transportebene mit Hilfe von TLS\/SSL. Um diese Art der Verschl\u00fcsselung zu nutzen, ben\u00f6tigt der MQTT Broker ein X509 Zertifikat, bevorzugt von einer offiziellen Zertifizierungsstelle signiert, um die sp\u00e4tere Verifizierung des Servers durch den Client zu erleichtern. Des Weiteren wird f\u00fcr die verschl\u00fcsselte Kommunikation ein separater Listener auf einem extra Port erstellt, standardm\u00e4\u00dfig ist dieser Port 8883. Nun k\u00f6nnen Clients, die die M\u00f6glichkeit der verschl\u00fcsselten Kommunikation via TLS\/SSL unterst\u00fctzen, \u00fcber diesen Port verschl\u00fcsselt mit dem MQTT Broker Nachrichten austauschen.<\/p><p>Eine weitere M\u00f6glichkeit die Kommunikation mit dem MQTT Broker abzusichern besteht darin, durch einen Authentifizierungsmechanismus die Nutzer zu begrenzen. Das Protokoll verf\u00fcgt daf\u00fcr \u00fcber Nutzernamen und Passwort Felder in der \u201eCONNECT\u201c Nachricht. Der Abgleich des Nutzernamens mit dem Passwort erfolgt brokerseitig, eine Methodik daf\u00fcr ist nicht standardisiert und muss vom Administrator h\u00e4ndisch eingerichtet werden. <em>Hierbei empfiehlt es sich ausdr\u00fccklich auf standardisierte, \u00f6ffentlich zug\u00e4ngliche Sicherheitsmechanismen zur\u00fcckzugreifen und keine eigenen Mechanismen zu programmieren!<\/em><\/p><p>Eine weitere M\u00f6glichkeit der brokerseitigen Absicherung der MQTT Kommunikation besteht in der Erstellung von Autorisierungskonzepten. Diese Autorisierung kann jede erdenkliche Form annehmen, z. B. nutzerspezifisch, nutzergruppenspezifisch oder zertifikatsbasierend. Die Implementierung der Logik liegt erneut vollkommen frei in der Hand der Administratoren.<\/p><p>Abschlie\u00dfend besteht noch die M\u00f6glichkeit der Nachrichtenverschl\u00fcsselung auf Applikationsebene. Diese ist abh\u00e4ngig von den jeweiligen Clients und kann unabh\u00e4ngig vom Broker von jedem Client eingesetzt werden.<\/p><p>Es ist hierbei, wie bei allen \u00fcbrigen Sicherheitsmechanismen, zu beachten, dass jegliche Erh\u00f6hung der Sicherheit immer zu Performanceeinbu\u00dfen f\u00fchrt. Es kann daher Sinn machen, bei besonders zeitkritischen Anwendungsf\u00e4llen komplett auf Sicherheitsmechanismen zu verzichten um die Leistung des Gesamtsystems zu optimieren. Es empfiehlt sich in jedem Fall die Besonderheiten des jeweiligen Anwendungsfalles zu betrachten und die Sicherheitsanforderungen individuell zu bestimmen.<\/p>","_et_gb_content_width":""},"categories":[11],"tags":[],"_links":{"self":[{"href":"https:\/\/innohub13.de\/en\/wp-json\/wp\/v2\/posts\/2168"}],"collection":[{"href":"https:\/\/innohub13.de\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/innohub13.de\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/innohub13.de\/en\/wp-json\/wp\/v2\/users\/10"}],"replies":[{"embeddable":true,"href":"https:\/\/innohub13.de\/en\/wp-json\/wp\/v2\/comments?post=2168"}],"version-history":[{"count":8,"href":"https:\/\/innohub13.de\/en\/wp-json\/wp\/v2\/posts\/2168\/revisions"}],"predecessor-version":[{"id":9076,"href":"https:\/\/innohub13.de\/en\/wp-json\/wp\/v2\/posts\/2168\/revisions\/9076"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/innohub13.de\/en\/wp-json\/wp\/v2\/media\/2169"}],"wp:attachment":[{"href":"https:\/\/innohub13.de\/en\/wp-json\/wp\/v2\/media?parent=2168"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/innohub13.de\/en\/wp-json\/wp\/v2\/categories?post=2168"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/innohub13.de\/en\/wp-json\/wp\/v2\/tags?post=2168"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}