realisierung eines kryptografisch gesicherten

Werbung
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
Herunterladen