Hallo DerColaTrinker,
zu der Frage, ob man bezüglich der Sicherung der Zugangsdaten etwas gewinnt, wenn man statt eines direkten Zugriff auf die Datenbank noch einen Webservice dazwischenschaltet:
Zitat |
Also ist die beste Möglichkeit ein Web Service, der alle Funktionen bereit stellt. |
Das beschränkt den Zugriff aber "nur" auf die erlaubten Operationen, nämlich die, die der Webservice bereitstellt und vielleicht noch auf die erlaubten Parameter, die der Webservice verifizieren kann.
Beim Schutz des Zugriffs auf den Webservice hat man wieder das gleiche Grundproblem wie beim Schutz des Zugriffs auf eine Datenbank, nämlich dass die Zugriffsdaten ausgelesen werden können, wenn sie in der lokalen Anwendung oder einer Config-Datei enthalten sind, selbst wenn die Zugriffsdaten verschlüsselt oder verschleiert gespeichert sind.
Das bedeutet insbesondere, dass auch ein zwischengeschalteter ein Webservice per se nicht das Problem löst, den Zugriff auf bestimmte Personen bzw. bestimmte Programme zu beschränken.
Der einzige Weg, den Zugriff auf bestimmte Personen zu beschränken, ist, nur den berechtigen Personen die Zugriffsdaten für den Dienst (egal ob Datenbank oder Webservice) zur Verfügung zu stellen und diese Zugangsdaten
nicht in der lokalen Anwendung zu hinterlegen.
Betrachten wir noch den Fall, dass man den berechtigten Personen nicht direkt die Zugriffsdaten für den Dienst bekannt geben möchte, sondern diese in der lokalen Anwendung mit einem extra Passwort stark verschlüsselt speichert, wobei dieses Passwort nur den berechtigten Personen bekannt gegeben wird und sie dieses jedes Mal nach dem Start der Anwendung und vor dem ersten Zugriff eingeben müssen. Dann können zwar fremde Angreifer, die nur die Anwendung (bzw. deren Config-Datei) besitzen, die Zugangsdaten nicht mehr ermitteln(*), aber den berechtigten Personen ist weiterhin möglich, die Zugangsdaten des Dienstes zu ermitteln, da sie die Verschlüsselung in Kenntnis des Passwortes und des in der lokalen Anwendung notwendigerweise enthalten Entschlüsselungsalgorithmus rückgängig machen können.
Wie man es auch dreht, wenn die Zugangsdaten in der lokalen Anwendung enthalten sind, können diese mit den nötigen Kenntnissen und dem nötigen Aufwand prinzipiell ausgelesen werden. Durch das Zwischenschalten eines Webservices verschiebt man das Problem also im Wesentlichen nur von der Sicherung des Zugriffs auf die Datenbank zur Sicherung des Zugriffs auf den Webservice, ohne etwas prinzipiell zu ändern.
Anders sieht es aus, wenn die Berechtigung für den Zugriff auf den Dienst (wieder egal ob Datenbank oder Webservice) z.B. über die Windows Authentifizierung realisiert werden kann. Klar, wenn du aufgrund der Gegebenheiten in deiner Firma die Windows Authentifizierung zwar nicht für Datenbanken, aber für einen Webservice verwenden kannst, dann (und nur dann) hat ein Webservice für dich einen echten Vorteil. Vielen Dank für diesen Hinweis von Abt.
herbivore
(*) Es sei denn es gelingt ihnen die starke Verschlüsselung zu brechen, was bei starken Passworten bzw. -phrasen üblicherweise sehr viel Aufwand an Zeit und Geld erfordert, sofern es überhaupt gelingt.
Suchhilfe: 1000 Worte