Sichere Datenübertragung mit IDL.KONSIS.FORECAST und IDL.XLSLINK 06.12.2016 16:49 Sichere Datenübertragung mit IDL.KONSIS.FORECAST und IDL.XLSLINK Inhaltsverzeichnis 1 2 3 4 5 6 7 Einführung ............................................................................................................................... 3 HTTPS .................................................................................................................................... 4 Client und Server im Netzwerk ...............................................................................................10 Authentifizierung.....................................................................................................................14 Proxy-Server ..........................................................................................................................16 Literaturhinweise ....................................................................................................................17 Kontakt ...................................................................................................................................18 2 © IDL GmbH Mitte Sichere Datenübertragung mit IDL.KONSIS.FORECAST und IDL.XLSLINK 1 Einführung Dieses Handbuch richtet sich sowohl an die Anwender als auch an die IT-Administratoren von IDL.KONSIS.FORECAST und IDL.XLSLINK. Es liefert wichtige Hintergrundinformationen zur sicheren Datenübertragung mit HTTPS, zur ClientServer-Architektur und zur Authentifizierung von IDL.KONSIS.FORECAST und IDL.XLSLINK. Das Handbuch ist somit als Ergänzung zu den beiden Handbüchern „IDL.KONSIS.FORECAST – Start der Anwendung“ und „IDL.XLSLINK – Schnelleinstieg“ zu empfehlen. Hinweise für Anwender Der Inhalt des vorliegenden Handbuches ist technischer Natur. Fachbegriffe und Zusammenhänge werden auf eine anschauliche Weise erklärt und durch Abbildungen ergänzt. Spezialwissen aus dem IT-Bereich ist nicht erforderlich. Grundkenntnisse aus dem Computer-Bereich sind aber vorteilhaft. Bitte fragen Sie bei aufkommenden Verständnisschwierigkeiten und auftretenden Problemen nach Unterstützung. Hilfestellung bekommen Sie durch den Technischen Support der IDL GmbH Mitte. Möglichkeiten zur Kontaktaufnahme finden Sie im abschließenden Kapitel. © IDL GmbH Mitte 3 Sichere Datenübertragung mit IDL.KONSIS.FORECAST und IDL.XLSLINK 2 HTTPS Mit dem Release IDL.KONSIS.FORECAST 2014.0 wurde erstmalig der neue Applikationsserver ausgeliefert, der mit den Anwendungen über HTTPS kommuniziert. Um Daten im Netzwerk sicher und verschlüsselt zu übertragen, benutzt man HTTPS. HTTPS (Hypertext Transfer Protocol Secure) wird hauptsächlich verwendet, um Webseiten in einem Internet-Browser zu laden. Es ist jedoch nicht darauf beschränkt und ist auch als allgemeines Datenübertragungsprotokoll verbreitet. HTTPS wird zur Herstellung von Vertraulichkeit und Integrität in der Kommunikation zwischen Server und Client verwendet. Datenintegrität liegt immer nur dann vor, wenn die Nachrichten unverändert zugestellt werden. Dabei ist es nicht sinnvoll, die Integrität der Daten und die Authentizität des Datenursprungs unabhängig voneinander zu betrachten, da eine empfangene Nachricht mit einem modifiziertem Inhalt, aber bekanntem Absender ebenso wertlos sein dürfte wie eine empfangene Nachricht mit einem nicht modifiziertem Inhalt, dafür aber mit einem vorgetäuschten Absender. Die Sicherheit wird bei HTTPS durch eine Authentifizierung des Servers mit einem SSL-Zertifikat und außerdem durch eine Transportverschlüsselung bei der Datenübertragung erreicht. Syntaktisch ist HTTPS identisch mit dem Schema für HTTP, die zusätzliche Verschlüsselung der Daten geschieht mittels des Verschlüsselungsprotokolls Transport Layer Security (TLS). Das Protokoll TLS, auch bekannt unter der Vorgängerbezeichnung Secure Sockets Layer (SSL), dient der Verschlüsselung und damit der sicheren Datenübertragung zwischen Client und Server in Netzwerken bzw. im Internet. Der Client baut eine Verbindung zum Server auf. Der Server authentisiert sich gegenüber dem Client mit einem Zertifikat. Dieses enthält einen öffentlichen Schlüssel und eine digitale Signatur, weiterhin Angaben zum Inhaber, zum Aussteller sowie Angaben über die Gültigkeitsdauer des Zertifikates. Der Client überprüft mit diesen gemachten Angaben die Vertrauenswürdigkeit. Ist die Überprüfung der Vertrauenswürdigkeit negativ, zeigt der Client eine Warnung an, dass die Verbindung nicht vertrauenswürdig ist. Bevor die ersten Nutzdaten ausgetauscht werden, übermittelt das SSL-Handshake-Protokoll die persönlichen Identifikationsdaten beider Teilnehmer und handelt das Verschlüsselungsverfahren aus, das während der Verbindung verwendet werden soll. Client und Server einigen sich auf einen Verschlüsselungscode, den sogenannten Sitzungsschlüssel. Danach fließen die verschlüsselten Informationspakete, die der Empfänger jeweils entschlüsselt und zusammensetzt. Symmetrische Kryptosysteme Die symmetrischen Verfahren zeichnen sich dadurch aus, dass sowohl für die Verschlüsselung in Geheimtext als auch für die Entschlüsselung in Klartext der exakt selbe Schlüssel verwendet wird. Die größte Problematik der symmetrischen Verfahren besteht beim unsicheren Schlüsselaustausch. Eine verschlüsselte Nachricht kann zwar gefahrlos verschickt werden, nicht aber der Schlüssel selbst. Um vor Angriffen geschützt zu sein, muss für den Transport des Schlüssels also unbedingt ein sicherer Kanal gewährleistet sein. Asymmetrische Kryptosysteme Das asymmetrisches Kryptosystem oder Public-Key-Kryptosystem ist ein Verfahren, bei dem die kommunizierenden Parteien zwei unterschiedliche Schlüssel benutzen. Der private Schlüssel, auch geheimer Schlüssel genannt, ist im Keystore-Container auf dem Server installiert und wird unter 4 © IDL GmbH Mitte Sichere Datenübertragung mit IDL.KONSIS.FORECAST und IDL.XLSLINK keinen Umständen an die Clients weitergegeben. Der öffentliche Schlüssel hingegen ist in das SSLZertifikat integriert und wird auch an die Clients weitergegeben. Der öffentliche Schlüssel ermöglicht es jedem Benutzer, Nutzdaten für den Besitzer des privaten Schlüssels zu verschlüsseln, aber auch dessen digitale Signaturen zu überprüfen oder ihn zu authentifizieren. Der private Schlüssel ermöglicht es seinem Besitzer, mit dem öffentlichen Schlüssel verschlüsselte Daten wieder zu entschlüsseln, digitale Signaturen zu erzeugen oder sich zu authentisieren. Der private Schlüssel wird vom Besitzer geheim gehalten. Privater und öffentlicher Schlüssel bilden das gemeinsame Schlüsselpaar für die asymmetrische Verschlüsselung. Beide Schlüssel sind durch eine komplexe mathematische Formel untrennbar miteinander verbunden. Kennt ein Angreifer den öffentlichen Schlüssel, so kann er daraus weder auf die verschlüsselte Nachricht noch auf den privaten Schlüssel schließen. Der öffentliche Schlüssel kann ohne Bedenken über unsichere Kanäle verschickt werden. Hybride Kryptosysteme (Kombination aus symmetrischer und asymmetrischer Kryptographie) Da asymmetrische Verfahren extrem rechenaufwändig sind, benutzt man fast immer eine Kombination aus symmetrischer und asymmetrischer Kryptographie. Diese Kombination nennt man Hybrid-Kryptographie bzw. hybride Verschlüsselung. Dabei wird zu Beginn einer jeden Sitzung zwischen den beiden Partnern das VerschlüsselungsVerfahren ausgehandelt. Danach wird der sogenannte Sitzungsschlüssel (englisch: Session Key) erstellt und asymetrisch verschlüsselt zum Emfpänger übertragen. Der Sitzungsschlüssel ist ein zufällig generierter Schlüssel, der nur ein einziges Mal für eine einzelne Sitzung (Session) zwischen Client und Server verwendet wird. Dieser Sitzungsschlüssel kann von beiden Seiten für eine ressourcenschonende symmetrische Verschlüsselung und Entschlüsselung genutzt wird. Mit dem Sitzungsschlüssel ist es durchaus möglich, größere Mengen an Nutzdaten performant zu verschlüsseln und zu entschlüsseln. Als häufig genutztes Beispiel für hybride Kryptographie wäre das Verschlüsselungsprotokoll TLS bzw. SSL zu nennen. Bei TLS und SSL ist es üblich, den Sitzungsschlüssel nach verhältnismäßig kurzer Zeit wieder neu auszuhandeln. Dadurch würde ein einmalig aufgedeckter Session Key nicht zur Entschlüsselung jeglichen Datenverkehrs führen. Zum besseren Schutz der Integrität und Authentizität wird die verschlüsselte Nachricht außerdem durch einen Message Authentication Code (MAC) abgesichert. Der MAC dient dazu, Gewissheit über den Ursprung von Daten oder Nachrichten zu erhalten und ihre Integrität zu überprüfen. MAC-Algorithmen erfordern genau zwei Eingabeparameter, erstens die zu schützenden Daten und zweitens einen geheimen Sitzungsschlüssel, und berechnen aus beidem eine Prüfsumme, den Message Authentication Code. Der Sender berechnet aus dem Sitzungsschlüssel und der Nachricht einen MAC und sendet dann die Nachricht sowie den MAC an den Empfänger. Der Empfänger berechnet ebenfalls den MAC zu der empfangenen Nachricht mit dem Sitzungsschlüssel und vergleicht den berechneten MAC mit dem empfangenen MAC. Die Übereinstimmung beider Werte interpretiert der Empfänger als erfolgreichen Integritätstest. Die Nachricht wurde von einer Partei abgeschickt, die den geheimen Sitzungsschlüssel kennt, und die Nachricht wurde während der Übertragung nicht verändert. © IDL GmbH Mitte 5 Sichere Datenübertragung mit IDL.KONSIS.FORECAST und IDL.XLSLINK Digitale Signaturen Zum besseren Verständnis von digitalen Signaturen ist es hilfreich, den Begriff der Hashfunktion zu erwähnen. Eine Hashfunktion erzeugt aus einer beliebig großen Datenmenge, zum Beispiel aus einem Textdokument, einen sogenannten Hash-Code definierter Länge. Dieser Hash-Code ist der digitale Fingerabdruck der Nachricht. Um nun eine Nachricht zu signieren, erzeugt der Server über eine Hashfunktion einen digitalen Fingerabdruck der Nachricht und verschlüsselt dann diesen Fingerabdruck mit seinem privaten Schlüssel. Dieser verschlüsselte Fingerabdruck wird als digitale Signatur bezeichnet. Der Server sendet die digitale Signatur zusammen mit der Nachricht an den Client. Dieser berechnet seinerseits den Fingerabdruck der gesendeten Nachricht mit dem gleichen Algorithmus und entschlüsselt die mitgeschickte digitale Signatur mit dem öffentlichen Schlüssel des Servers. Stimmt der selbst berechnete Fingerabdruck mit dem entschlüsselten Wert überein, kann der Client sicher sein, dass die Nachricht auf dem Versandweg nicht verändert worden ist. Durch Einsatz digitaler Signaturen zusammen mit dem asymmetrischen Verschlüsselungsverfahren kann sichergestellt werden, dass Nachrichten auf dem Übertragungsweg nicht verfälscht werden können. SSL-Zertifikate Das Zertifikat ist mit einem elektronischen Ausweis des Zertifikatsinhabers vergleichbar. Durch die Verwendung digitaler Zertifikate soll Vertrauen zwischen dem Prüfer und dem Aussteller eines Zertifikates geschaffen werden. Ein Zertifikat besteht im einfachsten Fall aus den Komponenten: dem Namen des Inhabers, dem Namen des Ausstellers, der Signatur, dem öffentlichen Schlüssel, sowie der Angabe, wie lange das Zertifikat gültig ist (gültig ab, gültig bis). Zertifikate bestätigen also die Authentizität (d.h. die Zugehörigkeit eines Schlüssels zu einer Person) und die Integrität (d.h. die Unverfälschtheit) dieses öffentlichen Schlüssels. Das Zertifikat beinhalten den öffentlichen Schlüssel. Privater und öffentlicher Schlüssel bilden das gemeinsame Schlüsselpaar für die asymmetrische Verschlüsselung. Technisch gesehen sind SSL-Zertifikate in einer Keystore-Datei auf einem Server (Webserver, Applikationsserver) gespeichert. Diese Datei ist ein passwortgeschützter Container, bestehend aus einem oder mehreren Zertifikaten und den zugehörigen privaten Schlüsseln. Die privaten Schlüssel innerhalb des Containers sind ebenfalls passwortgeschützt. Zertifizierungsstellen (CA) Wenn Sie ein SSL-Zertifikat von einer Zertifizierungsstelle (CA) anfordern, verifiziert diese Ihre Unternehmensdaten und gibt auf der Basis dieser Daten ein nur für Sie bestimmtes Zertifikat aus. Die Aufgabe einer Zertifizierungsstelle ist es, Zertifikate herauszugeben bzw. erstellte Zertifikate zu überprüfen. Jede Zertifizierungsstelle (certificate authority, CA) trägt dabei die Verantwortung für die Bereitstellung, Zuweisung und Integritätssicherung der von ihr ausgegebenen Zertifikate. Eine Zertifizierungsstelle kann ein Unternehmen, eine Institution innerhalb eines Unternehmens, eine öffentliche Organisationen oder eine Regierungsstelle sein. Public Key Infrastructure (PKI) und Wurzelzertifikate (Root-Zertifikate) Bei einer Public Key Infrastructure (PKI), also einer Hierarchie von mehreren Zertifikaten, wird ein Wurzelzertifikat (Root-Zertifikat) mit dem zugehörigen Schlüsselpaar bei einer für alle Teilnehmer vertrauenswürdigen CA erstellt. Dieses Wurzelzertifikat kann als Vertrauensanker benutzt werden. 6 © IDL GmbH Mitte Sichere Datenübertragung mit IDL.KONSIS.FORECAST und IDL.XLSLINK Weitere Zertifikate in dieser PKI werden mit dem zum Wurzelzertifikat zugehörigen privaten Schlüssel signiert. Eine solche Signatur für ein Zertifikat wird nur dann ausgegeben, wenn alle von der CA festgelegten Anforderungen erfüllt wurden. Diese beinhalten unter anderem einen Nachweis über die Identität desjenigen, der das Zertifikat nutzen möchte. Nicht jedes Zertifikat einer PKI muss mit dem privaten Schlüssel des Wurzelzertifikats signiert werden. Es können auch private Schlüssel verwendet werden, deren zugehörige Zertifikate mit dem privaten Schlüssel des Wurzelzertifikats signiert wurden. Theoretisch kann eine solche Kette beliebig lang werden, sie muss nur immer beim Wurzelzertifikat beginnen. Für die Prüfung der Echtheit und Vertrauenswürdigkeit eines Zertifikats aus einer PKI müssen alle Zertifikate, die zwischen dem zu prüfenden Zertifikat und der Wurzelzertifikat liegen, verifiziert werden. Wurde ein Zertifikat von einer vertrauenswürdigen CA erfolgreich überprüft, enthält dieses einen Verweis auf das Zertifikat der CA, die das Zertifikat überprüft hat. Selbst erstellte SSL-Zertifikate Eine Alternative zu den Zertifikaten einer CA sind selbst erstellte SSL-Zertifikate, die allerdings nicht von einer Zertifizierungsstelle unterschrieben werden, sondern vom Ersteller des Zertifikates selbst. Browser und auch Java reagieren auf selbst ausgestellte SSL-Zertifikate mit einer SicherheitsWarnmeldung, da diese über keine Signatur einer bekannten CA verfügen. Dem Zertifikat wird nicht vertraut, weil es vom Aussteller selbst signiert wurde. © IDL GmbH Mitte 7 Sichere Datenübertragung mit IDL.KONSIS.FORECAST und IDL.XLSLINK Browser-Warnmeldungen bei SSL-Zertifikaten Jeder Internet-Browser wird mit einer Liste von Root-Zertifikaten ausgeliefert und über Updates aktualisiert. Die Liste der Zertifikate ist in den Browser Einstellungen einsehbar und editierbar. Ist das Root-Zertifikat der PKI nicht dabei, kommt beim Öffnen der Internet-Seite eine Warnung. Ganz ignorieren sollten Sie diese Warnmeldungen nicht, denn sie sollen darauf hinweisen, dass das Zertifikat nicht bekannt ist, also die Authentizität (die Echtheit) des Zertifikates und damit die Angaben über den Inhaber des privaten Schlüssels womöglich nicht stimmen und im schlimmsten Fall jemand unbefugtes die verschlüsselte Verbindung abhören, umleiten bzw. manipulieren kann. Abbildung 1: Internet Explorer -> Das Zertifikat wurde nicht von einer vertrauenswürden Zertifizierungsstelle ausgestellt. 8 © IDL GmbH Mitte Sichere Datenübertragung mit IDL.KONSIS.FORECAST und IDL.XLSLINK Abbildung 2: Firefox -> Dem Zertifikat wird nicht vertraut, weil es selbst signiert wurde Ein Zertifikat kann aus den folgenden Gründen ungültig und somit nicht vertrauenswürdig sein: Das Zertifikat oder seine Signatur wurde widerrufen. Das Zertifikat wurde illegal ausgestellt. Die Richtlinien der Nutzung des Zertifikats wurden verletzt. Das Zertifikat ist abgelaufen. Das Zertifikat ist noch nicht gültig. Die Struktur des Zertifikates ist beschädigt. Bei der Überprüfung der Signatur ist ein Fehler aufgetreten. Die Richtlinien der Nutzung des Zertifikats wurden verletzt. Die im Zertifikat angegebene Domain entspricht nicht der Website bzw. dem Server (Host), zu der die Verbindung hergestellt wird. Die Zertifikatskette ist unterbrochen: Die Zertifikatskette besteht aus einem einzigen selbstsignierten Zertifikat. Die Zertifikatskette endet nicht mit einem vertrauenswürdigen Stammzertifikat. Die Kette enthält Zertifikate, die nicht zum Signieren anderer Zertifikate bestimmt sind. Das Stamm- oder Zwischenzertifikat ist abgelaufen oder noch nicht gültig. Die Zertifikatskette kann nicht gebildet werden. © IDL GmbH Mitte 9 Sichere Datenübertragung mit IDL.KONSIS.FORECAST und IDL.XLSLINK 3 Client und Server im Netzwerk Client-Server-Architektur Die Client-Server-Architektur beschreibt die Verteilung von Aufgaben innerhalb eines Netzwerkes. Die verschiedenen Aufgaben werden von Clients und von Servern erledigt. Der Client kann Dienste von einem Server anfordern. Der Server stellt Dienste zur Verfügung. Die beiden Desktop-Anwendungen IDL.KONSIS.FORECAST und IDL.XLSLINK sind die ClientProgramme (Front-Ends) im Netzwerk. Diese kommunizieren mit dem Applikationsserver. Die Client-Programme und der Applikationsserver benutzen für die Kommunikation im Netzwerk das sichere Hypertext-Übertragungsprotokoll (HTTPS). Abbildung 3: Client-Server-Architektur - oben: Applikationsserver im LAN; unten: Applikationsserver in der Cloud In der obigen Abbildung ist eine dreischichtige Client-Server-Architektur dargestellt. Die drei Schichten haben folgende Aufgaben: In der ersten Schicht, der sogenannten Präsentationsschicht, werden die Client-Programme ausgeführt. Dort werden alle Benutzereingaben vorgenommen. Aber auch die Anzeige der zurückgesendeten Daten erfolgt in dieser Schicht. In der zweiten Schicht, der Anwendungsschicht, findet die Verarbeitung der Anfragen statt. Diese Aufgabe übernimmt der Applikationsserver. Als dritte Schicht gibt es die sogenannte Datenhaltungsschicht. Dort befindet sich die Datenbank und der Datenbankserver. Jede dieser drei Schichten kann nur mit der benachbarten Schicht kommunizieren. Das bedeutet, dass die beiden Client-Anwendungen IDL.KONSIS.FORECAST und IDL.XLSLINK in dieser dreischichtigen Client-Server-Architektur mit dem Applikationsserver, aber nicht direkt mit der IDL-Datenbank kommunizieren können. 10 © IDL GmbH Mitte Sichere Datenübertragung mit IDL.KONSIS.FORECAST und IDL.XLSLINK Abbildung 4: Client-Server-Architektur mit regional verteilten Netzwerken Lokale und entfernte Netzwerke Der Applikationsserver kann im lokalen Netzwerk (LAN), in einem entfernten Netzwerk, im Internet oder auch in der Cloud stehen. Clients und Applikationsserver können in verschiedenen Netzwerken sein. Gibt es regional verteilte Netzwerke, spricht man von einem „Wide Area Network (WAN)“. Eine optimale Performance der Anwendungen setzt eine schnelle und stabile Netzwerkverbindung mit sehr kleinen Ping–Antwortzeiten kleiner als eine Millisekunde zwischen dem Applikationsserver und dem Datenbankserver voraus. Applikationsserver und Datenbankserver sind in der Regel im selben Netzwerk. Applikationsserver Der Applikationsserver stellt Dienste für die Clients zur Verfügung und übernimmt komplett die Kommunikation mit der Datenbank, sodass die beiden Anwendungen IDL.KONSIS.FORECAST und IDL.XLSLINK ihre Anfragen an den Applikationsserver stellen, der die gewünschten Daten von der IDL-Datenbank holt und diese gebündelt an die Anwendungen zurückliefert. Die Anbindung des Applikationsservers zur IDL-Datenbank wird über JDBC1- und über Ole DB2Zugriffe realisiert. Der Applikationsserver übermittelt die Ergebnisse an IDL.KONSIS.FORECAST und IDL.XLSLINK. Ein Applikationsserver kann komplexe, rechenintensive Operationen durchführen und entlastet somit die Clients. Auch dient der Applikationsserver der Zwischenspeicherung von Daten, um die Anzahl der Zugriffe auf die Datenbank (DB) zu reduzieren. Anmerkung: Da die Clients mit dem Applikationsserver kommunizieren und der Applikationsserver wiederum mit der IDL-Datenbank, braucht in der dreischichtigen Architektur mit Applikationsserver der Datenbanktreiber nur auf dem Applikationsserver installiert zu werden. Zu den Aufgaben von JDBC (Java Database Connectivity) gehört es, Datenbankverbindungen aufzubauen, SQL-Anfragen an die Datenbank weiterzuleiten und die Ergebnisse dieser SQL-Abfragen in eine für Java nutzbare Form umzuwandeln. 2 OLE DB (Object Linking and Embedding, Database, auch OLEDB oder OLE-DB genannt) ist eine von Microsoft entwickelte Programmierschnittstelle basierend auf dem Component Object Model (COM) für einen standardisierten Zugriff auf unterschiedliche Datenquellen. 1 © IDL GmbH Mitte 11 Sichere Datenübertragung mit IDL.KONSIS.FORECAST und IDL.XLSLINK Der Applikationsserver kann gleichzeitig mehrere Datenbankverbindungen zu unterschiedlichen IDL-Datenbanken bereitstellen. Der Release-Stand der IDL-Datenbanken muss allerdings mit dem Release des Applikationsservers übereinstimmen. Jede Datenbankverbindung besitzt einen eindeutigen Namen, den sogenannten „Datenbank-Alias“. Dieser und alle zugehörigen DB-Verbindungsparameter sind im Applikationsserver konfiguriert. Für die Anwender ist die Konfiguration der Datenbankverbindungen allerdings gekapselt und damit nicht sichtbar. Applikationsserver bilden eine Sicherheitsgrenze zwischen Client und Datenbank. Ein direkter Zugriff der Desktop-Anwendungen auf die Datenbank ist nicht möglich. Webservices: Der Applikationsserver stellt verschiedene Webservices (Dienste) zur Verfügung. Zum Beispiel liefert ein Webservice die „Datenbank-Aliase“ an die Clients, ein anderer Webservice zeigt alle offenen Sitzungen (Sessions) von Benutzern. Der Applikationsserver beinhaltet außerdem eine Webserver-Funktionalität, sodass es möglich ist, über einen Internet-Browser (Internet Explorer, Mozilla Firefox, Google Chrome …) die Startseite des Applikationsservers aufzurufen und von dieser Seite mit Hilfe von Java Web Start die DesktopAnwendungen IDL.KONSIS.FORECAST und IDL.XLSLINK herunterzuladen und auszuführen. Vorteile der Drei-Schicht-Architektur mit Applikationsserver Nachfolgend werden einige Vorteile der Drei-Schicht-Architektur mit einem Applikationsserver gegenüber einer Zwei-Schicht-Architektur ohne Applikationsserver genannt: höhere Performance durch bessere Aufgabenverteilung (Client und Applikationsserver) Skalierbarkeit (Speicher des Applikationsservers ist nahezu unbegrenzt erweiterbar) höhere Netzwerk-Sicherheit (Netzwerkkommunikation über HTTPS) höhere Datenbank-Sicherheit (Datenbank ist gekapselt und für Außenwelt nicht erreichbar) einfache Client-Installation (Clients benötigen keine Datenbanktreiber) Voraussetzungen der Drei-Schicht-Architektur mit Applikationsserver Voraussetzung für eine Drei-Schicht-Architektur ist die Bereitstellung eines weiteren dedizierten Windows-Servers. Auf diesem wird der Applikationsserver installiert und konfiguriert. Weitere Informationen zur Client-Server-Architektur finden Sie im Handbuch „Neue Architektur von IDL.KONSIS.FORECAST“. Zwei-Schicht-Client-Server-Architektur mit Fat-Client Die zweischichtige Client-Server-Architektur besteht aus dem zentralen Datenbankserver als Server-Komponente und einem oder mehreren Benutzer-Clients als Client-Komponente. Die Desktop-Anwendung ist die Client-Komponente. Sie beinhaltet eine Datenbankschnittstelle, mit der der Benutzer auf die Ressourcen des Datenbankservers zugreift. Der Client liest und pflegt die Daten in der Datenbank durch „Abschicken“ von SQL-Befehlen. Jeden SQL-Befehl sendet der Client als Anforderung an den Datenbankserver, um diesen dort ausführen zu lassen. Das Ergebnis liefert der Datenbankserver als Antwort an den Client zurück. Da in dieser Zwei-Schicht-Architektur der Fat-Client direkt mit der Datenbank kommuniziert, muss der Datenbanktreiber auf jedem Client-Rechner installiert und für die Anwendung konfiguriert sein. 12 © IDL GmbH Mitte Sichere Datenübertragung mit IDL.KONSIS.FORECAST und IDL.XLSLINK Der Name Fat-Client deutet schon darauf hin, dass ein Großteil der gesamten Anwendung auf dem Client liegt. Ein Fat-Client enthält die gesamte Fachlogik. Nicht nur die Dateneingabe und die Datenausgabe, sondern auch die Datenverarbeitung erfolgt dort, wo der Fat-Client ausgeführt wird. Abbildung 5: 2-Schicht-Client-Server-Architektur mit Fat-Client Diese Zwei-Schicht-Architektur mit dem sogenannten Fat-Client wurde in der Vergangenheit bis IDL.KONSIS-Version 2013 fast ausschließlich angewandt. Der Client wurde auf einem PC oder auch auf einem Terminal-Server ausgeführt, oft über eine Netzwerkfreigabe aus dem Programmverzeichnis. Dieses wurde auf einem File Server3 installiert. Dadurch waren Updates sehr einfach umsetzbar. Ein zeitaufwendiges Update der Client-Rechner entfiel durch die zentrale Speicherung der Client-Komponenten auf dem File Server. Allerdings war die Performance von IDL.KONSIS eingeschränkt, da alle Client-Komponenten über das Netzwerk geladen, entpackt und ausgeführt wurden. Zusätzlich verschlechtert sich die Performance erheblich durch eine hohe Netzwerk-Latenz. Die Netzwerklatenz ist die Zeit, welche eine Anfrage benötigt, um vom Client über das Netzwerk zu einem Server und zurück benötigt. Ab IDL.KONSIS.FORECAST-Version 2014 wurde die Zwei-Schicht-Architektur mit Fat-Client nach und nach durch eine moderne Drei-Schicht-Architektur mit Applikationsserver ersetzt. Die zweischichtige Client-Server-Architektur mit dem Fat-Client wird bei IDL.KONSIS.FORECAST und IDL.XLSLINK ab der Version 2016 nicht mehr unterstützt. 3 Der „File Server“ ist ein Rechner oder auch ein Netzwerk-Speicher (NAS: Network Attached Storage), der Dateien und Dateisysteme im Netzwerk für Clients und für andere Server zur Verfügung stellt. © IDL GmbH Mitte 13 Sichere Datenübertragung mit IDL.KONSIS.FORECAST und IDL.XLSLINK 4 Authentifizierung Windows-Authentifizierung – Single Sign On (SSO) Single Sign On (SSO) heißt übersetzt „einmalige Anmeldung“ und bedeutet, dass ein Benutzer nach einmaliger Authentifizierung an einem Arbeitsplatz alle Anwendungen benutzen kann, für die er autorisiert ist, ohne sich jedes Mal neu mit Benutzername und Passwort anmelden zu müssen. Windows-Authentifizierung (SSO) - Anmeldung an Microsoft SQL Server Wenn ein Benutzer eine Verbindung zum Microsoft SQL Server über ein Windows-Benutzerkonto herstellt, überprüft der Microsoft SQL Server den Benutzernamen und das zugehörige Kennwort mithilfe des Tokens für den Windows-Prinzipal4 im Betriebssystem. Bei einer erfolgreichen Überprüfung wird damit die Benutzer-Identität von Windows bestätigt. Die Windows-Authentifizierung ist bei Microsoft SQL-Server der Standardauthentifizierungsmodus. Die Windows-Authentifizierung verwendet das Kerberos-Sicherheitsprotokoll und stellt Maßnahmen zur Durchsetzung von Kennwortrichtlinien bereit, wie die Komplexität sicherer Kennwörter. Darüber hinaus bietet die Windows-Authentifizierung eine Unterstützung für Kontosperrungen und Ablauf von Kennwörtern. Mit der Windows-Authentifizierung können Windows-Gruppen auf Domänen als Anmeldungen im Microsoft SQL Server erstellt werden. So muss nicht jeder einzelne Benutzer als Anmeldung eingerichtet werden. Das spart einen erheblichen Aufwand beim Administrieren. Claims-Based-Identity (CBI) - Authentifizierung Claims-basierte Identität (CBI) kann den Authentifizierungsprozess erheblich vereinfachen, da sich der Benutzer nicht mehrfach an mehreren Anwendungen anmelden muss. Eine einzige Anmeldung erzeugt das Token, das dann zur Authentifizierung gegen mehrere Anwendungen oder Websites verwendet wird. Ein Token ist ein Satz von Bytes, das Informationen über eine Identität enthält. Da bestimmte Informationen (Claims) im Token verpackt sind, muss der Benutzer nicht jeder einzelnen Anwendung diese Informationen wiederholt mitteilen. Optional in Verbindung mit CBI können die Microsoft ADFS (Active Directory Federation Services) genutzt werden. Microsoft ADFS ermöglicht zum Beispiel den Zugriff auf fremde Anwendungen innerhalb und außerhalb des hauseigenen AD (Active Directory). Als Vermittler zwischen dem hauseigenen AD und der Claimsbasierenden Anwendung wird Microsoft ADFS eingesetzt. Claims-Based-Identity (CBI) sorgt für eine integrierte Authentifizierung innerhalb der IDL CPM Suite. Voraussetzung für die Authentifizierung via CBI ist ein CBI-Server. Dieser CBI-Server wird durch den IDL.WORKPLACESERVER (WPS) bereitgestellt. Für die Anbindung von IDL.KONSIS.FORECAST an den Identity Provider des WPS stellt der WPS ein XML-Paket mit einem SSL-Zertifikat zur Verfügung. 4 Windows-Principals stellen Windows-Benutzer und ihre Rollen bzw. ihre Windows-Gruppen dar. 14 © IDL GmbH Mitte Sichere Datenübertragung mit IDL.KONSIS.FORECAST und IDL.XLSLINK Authentifizierung mit IDL-User-Modus Innerhalb der Anwendung IDL.KONSIS.FORECAST können nicht nur Benutzer, sondern auch deren Passwörter verwaltet werden. Es gibt zudem die Möglichkeit zur Durchsetzung von KennwortRichtlinien, so zum Beispiel zur Überprüfung der Komplexität sicherer Kennwörter. Die Kennwörter werden verschlüsselt in der Datenbanktabelle als Hashwert gespeichert und sind für Anwender von IDL.KONSIS.FORECAST nicht lesbar. Ein Hashwert ist ein String definierter Länge. Der Hashwert wird aus dem Passwort und einem Zufallsstring (Salt) gebildet. Diese Authentifizierungsmethode wird aktiv, wenn am Applikationsserver der Aliasname der Datenbankverbindung auf den Authentifizierungsmodus IDL-User gesetzt wird. Berechtigungen zum Ändern der Kennwortrichtlinien und die Berechtigung zum Zurücksetzen der Passwörter erfolgt innerhalb der Anwendung IDL.KONSIS.FORECAST und ist in der Regel die Aufgabe eines Anwendungsadministrators innerhalb der Fachabteilung. Mit dieser Authentifizierungsmethode müssen für die Benutzer keine weiteren Anmeldungen im Microsoft SQL Server gesetzt werden. Dies spart serverseitig erheblichen Verwaltungsaufwand. Der IDL-USER bietet sich an, wenn sich ein Benutzer außerhalb der Domäne (externer Zugriff) am Applikationsserver authentifizieren möchte und Single Sign On (SSO) oder CBI nicht möglich sind. SQL-Server-Authentifizierung Bei Verwendung der SQL-Server-Authentifizierung werden Anmeldungen in Microsoft SQL Server erstellt, die nicht auf Windows-Benutzerkonten basieren. Sowohl der Benutzername als auch das Kennwort werden auf dem Microsoft SQL Server gespeichert. Benutzer, die mit SQL-ServerAuthentifizierung eine Verbindung herstellen, müssen jedes Mal ihre Anmeldeinformationen (Anmeldename und Kennwort) eingeben, wenn sie eine Verbindung herstellen. Es sind drei optionale Kennwortrichtlinien für SQL-Server-Authentifizierung verfügbar: Der Benutzer muss das Kennwort bei der nächsten Anmeldung ändern. Dies erfordert das Ändern des Kennworts durch den Benutzer beim nächsten Herstellen einer Verbindung. Ablauf des Kennworts erzwingen: Die Richtlinie für das maximale Kennwortalter wird für SQL-Server-Anmeldungen erzwungen. Kennwortrichtlinie erzwingen: Die Windows-Kennwortrichtlinien des Computers werden für SQL-Server-Anmeldungen erzwungen. Dies schließt Kennwortkomplexität ein. Es gibt bei IDL.KONSIS.FORECAST einen SQL-authentifizierten Benutzer für Wartungszwecke, mit dem die Updates durchgeführt werden. Weiterhin gibt es einen SQL-authentifizierten Benutzer für die Administration innerhalb der Anwendung und außerdem einen sogenannten internen Benutzer, mit dem der Applikationsserver auf die IDL-Datenbank(en) zugreift. © IDL GmbH Mitte 15 Sichere Datenübertragung mit IDL.KONSIS.FORECAST und IDL.XLSLINK 5 Proxy-Server Ein sogenannter Proxy-Server erlaubt einem Netzwerk-Administrator die Installation von strengen Sicherheitsregeln in einem privaten Netz. Der Proxy-Server dient als sicheres Gateway zwischen einem privaten und einem öffentlichen (ungesicherten) Netz. Ein Proxy-Server leitet über seine eigene Adresse die Anfragen des Clients, etwa die Anfrage zum Aufruf einer Website, an den entsprechenden Server weiter, ohne dass Client und Server direkt mit einander verbunden sein müssen. Ein Proxy-Server dient weiterhin zur Zwischenspeicherung von Web-Inhalten. Damit ermöglicht der Proxy-Server einen schnelleren Zugriff auf Internetinhalte und sorgt für eine Entlastung der Internet-Anbindung. Ein Proxy-Server kann zudem auch als erweiterte Firewall benutzt werden. Je nach Proxy-Server-Konfiguration muss sich ein Benutzer eines ProxyServers ggf. mit einem Benutzernamen und Kennwort authentifizieren. Abbildung 6: Proxy-Server im Firmennetz Die beiden Clients IDL.KONSIS.FORECAST und IDL.XLSLINK können über einen Proxy-Server mit dem Applikationsserver kommunizieren. Dies ist nur dann erforderlich, wenn der Applikationsserver in einem anderen Netzwerk (WAN) oder aber im Internet steht und Sie in Ihrem lokalen Netzwerk (LAN) den Proxy-Server benötigen, um den Applikationsserver im entfernten Netz bzw. im Internet zu erreichen. 16 © IDL GmbH Mitte Sichere Datenübertragung mit IDL.KONSIS.FORECAST und IDL.XLSLINK 6 Literaturhinweise Literaturhinweise für Anwender Das Handbuch „IDL.KONSIS.FORECAST-Start der Anwendung“ beschreibt den ersten Start der Anwendung IDL.KONSIS.FORECAST. Analog dazu beschreibt das Handbuch „IDL.XLSLINK-Schnelleinstieg“ den ersten Start von IDL.XLSLINK, die Konfiguration und die Installation des Excel-Add-Ins. Informationen zum „Einlesen“ und zum „Auslesen“ von Daten und Hinweise zur Benutzung des Excel-Add-Ins finden Sie im Handbuch „Daten lesen und exportieren mit IDL.XLSLINK“. Literaturhinweise für die IT-Administration IDL.KONSIS.FORECAST und IDL.XLSLINK haben bereits mit dem Release 2014.0 eine moderne Client-Server-Architektur bekommen. Wichtige Informationen zur Client-Server-Architektur finden Sie im Handbuch „Neue Architektur von IDL.KONSIS.FORECAST“. Wichtige Informationen zur Serverinstallation, zur Clientinstallation und auch zur Konfiguration des Applikationsservers finden Sie im Handbuch „Installation IDL.KONSIS.FORECAST“. © IDL GmbH Mitte 17 Sichere Datenübertragung mit IDL.KONSIS.FORECAST und IDL.XLSLINK 7 Kontakt Sie können den technischen Support wie folgt erreichen: Per Online-Supportanfrage: https://www.idl.eu/service-center/support/weberfassung-supportanfrage/ Dies setzt voraus, dass ein Account vorhanden ist. Sollte keiner vorhanden sein, so legen Sie bitte einen an. Wichtig hierbei ist, dass Sie Ihre Kundennummer vorliegen haben, um diese im Nachhinein in Ihrem Profil eintragen zu können. Per Mail: [email protected] oder per Telefon: +49 (0)4102-4785-11 Tipp: Um die bestmögliche Reaktionszeit auf Ihre Anfrage zu erhalten, senden Sie Ihre Anfrage einfach per „Online-Supportanfrage“. Ihr technischer Support IDL GmbH Mitte 18 © IDL GmbH Mitte