REALISIERUNG EINES KRYPTOGRAFISCH GESICHERTEN, ZERTIFIKATBASIERTEN REMOTEZUGANGS ZU DEN FPGARESSOURCEN EINES ZENTRALEN SERVERS Gliederung 1. Motivation 2. Stand der Technik 3. Implementierung 4. Leistungsfähigkeit 5. Zusammenfassung und Ausblick 13.06.2017 Verteidigung Diplomarbeit Benedikt Reuter Folie 2 von 27 1. MOTIVATION 13.06.2017 Verteidigung Diplomarbeit Benedikt Reuter Folie 3 von 27 Problembeschreibung • Zugang zu teurer Spezialhardware über ein Netzwerk • Aktueller Ansatz: • Alle Nutzer haben ein gemeinsames Verzeichnis. • Es kann immer nur ein Nutzer zur gleichen Zeit angemeldet sein, • umständlicher Dateiupload. • Die Nutzerverwaltung muss auf dem Server durch den Administrator vorgenommen werden. unkomfortabel und wartungsintensiv 13.06.2017 Verteidigung Diplomarbeit Benedikt Reuter Folie 4 von 27 Spezifikation • Implementierung von Server und Client in Java • TLS-Infrastruktur mit asymmetrischer Verschlüsselung • die benötigten Zertifikate zur Authentifikation nutzen • Verwaltung der Zertifikate außerhalb der Anwendung • mehrstufige Zertifikatsstruktur Zertifikatsketten • Nutzerstatistik auf verschiedenen Ebenen • Schaffung persistenter privater Umgebungen je Nutzer • Nutzer können Aufträge starten (Live oder als Auftrag) 13.06.2017 Verteidigung Diplomarbeit Benedikt Reuter Folie 5 von 27 2. STAND DER TECHNIK 13.06.2017 Verteidigung Diplomarbeit Benedikt Reuter Folie 6 von 27 Field Programmable Gate Array (FPGA) • möglicher Vertreter von Spezialhardware • integrierter Schaltkreis • rekonfigurierbar • Schaltungsstruktur kann konfiguriert werden • Beschreibung mit VHDL • Erzeugung eines Bitstreams • Konfiguration der vorgefertigten Bauteile Abbildung 2.1: Schematischer Aufbau eines FPGA (Abbildung übernommen aus [Tri15]) 13.06.2017 Verteidigung Diplomarbeit Benedikt Reuter Folie 7 von 27 Abbildung 2.2: Schematische Darstellung des Xilinx Kintex-7 DNK7_F5_PCIe (Abbildung übernommen aus [DIN]) 13.06.2017 Verteidigung Diplomarbeit Benedikt Reuter Folie 8 von 27 Vivado Hardware Server • zur Nutzung von JTAG • falls physikalische Schnittstelle schwer zugänglich • oder entfernter Zugang erforderlich • SSH-Login in Container möglich • Nutzerverwaltung erforderlich • gemeinsames Nutzerverzeichnis • umständlicher Dateitransfer, da nicht von außen erreichbar für mehrere Nutzer unkomfortabel 13.06.2017 Verteidigung Diplomarbeit Benedikt Reuter Folie 9 von 27 OSI-Schichten-Modell Abbildung 2.3: Die OSI-Schichten Architektur (Abbildung übernommen aus [DZ83]) 13.06.2017 Verteidigung Diplomarbeit Benedikt Reuter Folie 10 von 27 Transmission Control Protocol / Internet Protocol (TCP/IP) RPC oder eigenes Protokoll TLS TCP IP Ethernet Abbildung 2.3: Die OSI-Schichten Architektur (Abbildung übernommen aus [DZ83]) 13.06.2017 Verteidigung Diplomarbeit Benedikt Reuter Folie 11 von 27 Public Key Infrastructure (PKI) RA RA registration registration authority authority • Anfordern, Validieren und Widerrufen von Zertifikaten • Trennung der Nutzerverwaltung von der Anwendung CA CA certification certification authority authority • Nutzerzertifikat kann ebenfalls CA-Rechte erhalten mehrstufige Infrastruktur möglich App VA validation authority Abbildung 2.5: Bestandteile einer PKI 13.06.2017 Verteidigung Diplomarbeit Benedikt Reuter Folie 12 von 27 Remote Procedure Call (RPC) • Abstrahierung der Kommunikation auf einfache Programmierschnittstelle • Programmierer ruft entfernte Funktion wie lokale Funktion auf • erzeugt Probleme: • Fehlererkennung, • globale Variablen, • kein gemeinsamer Adressraum, • erhöhte Ausführungszeit, • Übertragungssicherheit 13.06.2017 Abbildung 2.6: Ablauf einer allgemeinen Anfrage im RPC-Protokoll (Abbildung übernommen aus [Eul]) Verteidigung Diplomarbeit Benedikt Reuter Folie 13 von 27 Java RPCs SOAP – JAX-WS CORBA Java RMI • SOAP Protokoll zum Austausch strukturierter Informationen in XML • SOAP-Nachricht besteht aus Header und Body und sind beliebig erweiterbar • kann für RPC genutzt werden, dazu muss definiert werden, wie Variablen zwischen XML und Programmiersprache übersetzt werden • JAX-WS erstellt durch Anmerkungen im Javaquelltext SOAP • eine der ältesten RPCImplementationen • ermöglicht Übertragung von Objekten • sprach- und plattformunabhängig • IDL als einheitliche Schnittstelle fürs Netzwerk • jeder Kommunikationsknoten hat nativen ORB • ORB verwalten Netzwerkfunktionen (übertragen Anfragen in IDL über das Netzwerk) • nur zwischen JavaAnwendungen • ebenfalls Übertragung von Objekten • betriebssystemunabhängig • verfügbare Objekte über Interfaces definiert • Serialisierung statt IDL • im Netzwerk wird „rmiregistry“ benötigt • kennt Interface und ermöglicht Verbindungen • Garbage Collection • u. U. ORBs optimierter 13.06.2017 Verteidigung Diplomarbeit Benedikt Reuter Folie 14 von 27 Java (New) Input/Output • Java IO – Schnittstelle Programmierer und Netzwerk • Quelle und Ziel als Datenströme abstrahiert • Zwischenspeicher zur Bearbeitung von Datenströmen • Durch immer optimiertere Betriebssysteme können nicht mehr alle Features durch I/O-Modell genutzt werden. • seit SDK 1.4 Java NIO ereignisbasiert statt blockierend • Datenvermittlung ohne Zwischenspeicher möglich • viele Clients durch wenige Threads koordinierbar • Verschlüsselung universell nutzbar ausgelagert (SSLEngine) 13.06.2017 Verteidigung Diplomarbeit Benedikt Reuter Folie 15 von 27 3. IMPLEMENTIERUNG 13.06.2017 Verteidigung Diplomarbeit Benedikt Reuter Folie 16 von 27 Verwaltung von Administrations- und Nutzerzertifikaten Sub_RA registration authority Root_RA registration authority Sub_CA certification authority Root_CA certification authority VA validation authority App Abbildung 4.1: Übertragungszeit bei einer Verbindung über DSL 13.06.2017 Verteidigung Diplomarbeit Benedikt Reuter Folie 17 von 27 Verwaltung von Administrations- und Nutzerzertifikaten Abbildung 4.2: Baumstruktur zweistufige SSL Nutzerverwaltung 13.06.2017 Verteidigung Diplomarbeit Benedikt Reuter Folie 18 von 27 Entwurfsentscheidungen • für Java RMI entschieden, aber gescheitert • Authentifikationsinformationen nach Verbindung zur „rmiregistry“ nicht für den Server verfügbar • für Entwicklung eines eigenen Protokolls entschieden • Java NIO als optimierte Netzwerkschnittstelle untersucht • verliert in diesem Fall Vorteil (Weitergabe der Daten ohne Zwischenspeicherung) durch getrennten Verschlüsselungsmechanismus • für herkömmliches, Java IO entschieden, da übersichtlicher bei ähnlicher Geschwindigkeit 13.06.2017 Verteidigung Diplomarbeit Benedikt Reuter Folie 19 von 27 Eigenes Protokoll • TLS überträgt verschlüsselten Binärdatenstrom, • Interpretieren muss eigenes Protokoll • Länge der Datenpakete (fast) immer vorher übertragen • somit keine Einschränkung des Informationsgehaltes Datentyp Größe Zahlenbereich max. Dateigröße long: 8 Byte -2⁶³ bis 2⁶³-1 9223372 TB int: 4 Byte -2³¹ bis 2³¹-1 2147 MB short: 2 Byte -2¹⁵ bis 2¹⁵-1 32767 Byte byte: 1 Byte -2⁷ bis 2⁷-1 127 Byte Tabelle 4.1: Java Datentypen Paketgrößencodierung 13.06.2017 Verteidigung Diplomarbeit Benedikt Reuter Folie 20 von 27 Eigenes Protokoll Abbildung 4.3: Exemplarische Protokollsequenzen 13.06.2017 Verteidigung Diplomarbeit Benedikt Reuter Folie 21 von 27 Abbildung 4.6: Schematische Übersicht über einen beispielhaften Programmablauf 13.06.2017 Verteidigung Diplomarbeit Benedikt Reuter Folie 22 von 27 4. LEISTUNGSFÄHIGKEIT 13.06.2017 Verteidigung Diplomarbeit Benedikt Reuter Folie 23 von 27 4. Leistungsfähigkeit • Messverfahren: Zeit zum vollständigen Senden einer Datei • Übertragungszeit schwer zu ermitteln (ms-genaue Uhrzeiten) • je größer die Dateien, desto geringer der Messfehler • Messreihen: DSL 50 kbit/s und auf gleichem Hostsystem • Down: 51.22 kbit/s 6,40 MB/s – Up: 9.18 kbit/s 1,14 MB/s Client Server DNK7 Upload Download Konsole Batch 13.06.2017 Verteidigung Diplomarbeit Benedikt Reuter Folie 24 von 27 Abbildung 4.2: Übertragungsgeschwindigkeit bei einer Verbindung über DSL 13.06.2017 Verteidigung Diplomarbeit Benedikt Reuter Folie 25 von 27 5. ZUSAMMENFASSUNG UND AUSBLICK 13.06.2017 Verteidigung Diplomarbeit Benedikt Reuter Folie 26 von 27 5. Zusammenfassung und Ausblick Funktionstüchtige Java-implementierte Serveranwendung Zugangskontrolle durch eigene PKI mit Nutzerstatistik Kryptografisch gesicherte TLS-Verbindung inkl. Authentifikation Online- und Batch-Ausführungsmodelle Persistente private Umgebung Skriptintegrierbarer Client durch „one-line-execution“ Vermessene Leistungsfähigkeit der Netzwerkkommunikation • Je nach Netzwerkgeschwindigkeit unterschiedliche Engpässe • Optimierungsbedarf in den Kommunikationsbibliotheken zum DNK7 13.06.2017 Verteidigung Diplomarbeit Benedikt Reuter Folie 27 von 27 Quellen der Abbildungen [Tri15] TRIMBERGER , Stephen M.: Three Ages of FPGAs: A Retrospective on the First Thirty Years of FPGA Technology / Proceedings of the IEEE. 2015. [DIN] DINIGROUP (Hrsg.): DNK7_F5_PCIe Hardware Manual. Last Updated 2014-10-06 N. Harder. Verfügbar unter: http://www.dinigroup.com/product/data/DNK7_F5PCIe/ files/Hardware_Manual_DNK7_F5_PCIe_REV4.pdf: DINI Group. – [12.04.2017] [DZ83] DAY , J. D. ; Z IMMERMANN , H.: The OSI reference model. In: Proceedings of the IEEE 71 (1983), Dec, Nr. 12, S. 1334–1340. http://dx.doi.org/10.1109/PROC.198 3.12775. – DOI 10.1109/PROC.1983.12775. – ISSN 0018–9219 [LL14] LIENEMANN, Gerhard ; LARISCH, Dirk: TCP-IP – Grundlagen und Praxis : Protokolle, Routing, Dienste, Sicherheit. 2., aktualisierte Aufl. Hamburg : , [Heidelberg] : Heise, 2014 http://slubdd.de/katalog?TN_libero_mab215988009. – ISBN 9783944099026 [Eul] EULER, Prof. Dr. S.: Netzwerk-Know-how (tecCHANNEL COMPACT) Kapitel 9: Remote Procedure Call – RPC. Verfügbar unter: https://technet.microsoft.com/dede/library/e8feb37e-f3a9-4f26-bed0-6583d8a110ed, . – [05.04.2017] 13.06.2017 Verteidigung Diplomarbeit Benedikt Reuter VIELEN DANK FÜR IHRE AUFMERKSAMKEIT 13.06.2017 Verteidigung Diplomarbeit Benedikt Reuter ANHANG 13.06.2017 Verteidigung Diplomarbeit Benedikt Reuter Messwerte DSL Dateigröße in Bytes 2048 4096 8192 16384 131072 1048576 67108864 536870912 Uploadzeit in ms 1 1 1 2 7 841 64547 518132 Downloadzeit in ms 30 30 30 33 104 281 12792 102275 Konsolenzeiten in ms 34 32 43 36 154 10983 72007 561808 Batchzeiten in ms 0 0 3 3 7 52 16821 87566 Upload in MB/s 2,048 4,096 8,192 8,192 18,72 1,25 1,04 1,036 Download in MB/s 0,07 0,14 0,27 0,50 1,26 3,73 5,25 5,49 Konsole in MB/s 0,06 0,13 0,19 0,46 0,85 0,96 0,93 0,96 2,73 5,46 18,72 20,16 3,99 6,13 Batch in MB/s Anhang 1: Messwerte DSL 13.06.2017 Verteidigung Diplomarbeit Benedikt Reuter Abbildung 4.1: Übertragungszeit bei einer Verbindung über DSL 13.06.2017 Verteidigung Diplomarbeit Benedikt Reuter Messwerte gleicher Host Dateigröße in Bytes 2048 4096 8192 16384 131072 1048576 67108864 536870912 Uploadzeit in ms 3 1 3 5 13 51 1636 13755 Downloadzeit in ms 1 1 2 3 11 40 1739 13842 Konsolenzeiten in ms 3 2 4 5 14 70 15233 86478 Batchzeiten in ms 0 0 2 3 7 27 22009 156080 Upload in MB/s 0,68 4,10 2,73 3,28 10,08 20,56 41,02 39,03 Download in MB/s 2,05 4,10 4,10 5,46 11,92 26,21 38,59 38,79 Konsole in MB/s 0,68 2,05 2,05 3,28 9,36 14,98 4,41 6,21 4,10 5,46 18,72 38,84 3,05 3,44 Batch in MB/s Anhang 2: Messwerte gleicher Host 13.06.2017 Verteidigung Diplomarbeit Benedikt Reuter Abbildung 4.3: Übertragungszeit bei Clientausführung auf dem Serversystem 13.06.2017 Verteidigung Diplomarbeit Benedikt Reuter Anhang 3: Die drei Service Modelle des RC3E (Abbildung übernommen aus: KNODEL, O. ; LEHMANN, P. ; SPALLEK, R. G.: RC3E: Reconfigurable Accelerators in Data Centres and Their Provision by Adapted Service Models. In: 2016 IEEE 9th International Conference on Cloud Computing (CLOUD), 2016, S. 19–26) 13.06.2017 Verteidigung Diplomarbeit Benedikt Reuter Anhang 4: Ablauf eines TLS Handshakes (Abbildung übernommen aus [LL14]) 13.06.2017 Verteidigung Diplomarbeit Benedikt Reuter Eigenes Protokoll Anhang 5: Protokollsequenz zum Dateiaustausch 13.06.2017 Verteidigung Diplomarbeit Benedikt Reuter Eigenes Protokoll Anhang 6: Protokollsequenzen zur Bearbeitung des privaten entfernten Verzeichnisses 13.06.2017 Verteidigung Diplomarbeit Benedikt Reuter Anhang 7: Protokollsequenzen zur Ausführung von Aufträgen 13.06.2017 Verteidigung Diplomarbeit Benedikt Reuter Programmaufbau 13.06.2017 Verteidigung Diplomarbeit Benedikt Reuter Programmaufbau 13.06.2017 Anhang Diplomarbeit 8: UML Server Verteidigung Benedikt Reuter Programmaufbau Anhang 9: UML Client 13.06.2017 Verteidigung Diplomarbeit Benedikt Reuter Programmumsetzung • 3 Konfigurationsebenen (Datei, Konsolenaufruf & -abfrage) • RC3E kann durch Konsolenaufrufe den Client nutzen • Nutzerstatistik durch serialisierte Hashmap realisiert • Nutzer können darin gesperrt werden • Server besitzt Logging (Fehlererkennung und Zugangslog) 13.06.2017 Verteidigung Diplomarbeit Benedikt Reuter Befehlssatz > h / help - show this list of commands > lls - list local directory content > rls - list remote directory content > rrm - remove file from remote directory > u / upload - upload file to remote directory > d / download - download file from remote directory content > c / console - start remote console mode > b / batch - start remote batch mode > q / quit / exit / CTRL+C - close this application 13.06.2017 Verteidigung Diplomarbeit Benedikt Reuter Anhang 10: Übertragungsgeschwindigkeit bei Clientausführung auf dem Serversystem 13.06.2017 Verteidigung Diplomarbeit Benedikt Reuter