Verschlüsselung von Datenbank+Webseite

Da draußen in der Wirtschaft da draußen hab ich schon oft diverse Fragen und Meinungen im Bezug zu Verschlüsselung gehört.

Jeder kann sich sicher denken das viele Unternehmer ihre sensiblen Daten ungern in die Hände fremder Webhoster legen. Firmeneigener Server hin und her, er bringt Vorteile und Nachteile.
Nun hatte ich die Idee Daten so zu verschlüsseln, das selbst derjenige mit Vollzugriff auf die Daten diese nicht lesen kann. Nur der normale Anwender oder Entwickler sollte mittels Schlüssel die Daten entschlüsseln können.

Somit sollte dann selbst der Webhoster die Daten nicht sehen können.
Mit Daten meine ich Webseite und Datenbank. Beides aber so im Einklang zu bringen und dazu noch Anwenderfreundlich ist mir ein Rätsel. Als Vorbild habe ich TrueCrypt genommen. Der Benutzer sollte am Anfang seinen Schlüssel eingeben und die Webseite + Datenbank wird entschlüsselt und der Anwender kann mittels HTML/PHP/Java-Script und SQL-Datenbank auf der Webseite Informationen lesen und in die Datenbank eintragen. Beim Eintragen müssten die Daten dann verschlüsselt eingetragen werden und Leute die gleichzeitig Zugriff haben den neuen Eintrag auch lesen können.
Das Script müsste dann also ständig mit der Entschlüsselung/ Verschlüsselung arbeiten. Aber das könnte dann zu Fehlern bei der Verknüpfung von Webseiten führen, oder das Datenbankhandling unmöglich machen.

Vielleicht gibt es ja schon eine Anwenderfreundliche Software, die das ermöglicht. Oder Jemand kann mir Ratschläge oder Links zu diesen Thema geben.
 
Ich verstehe nicht ganz wieso eine Firma auf einem fremden Server im Internet irgendwelche unternehmenskritische Daten ablegen sollte? Zumal das wohl auch in einigen Fällen rechtlich sehr bedenklich wäre. Natürlich gibt es Firmen die quasi nur im Web existieren (diverse Online-Shops bspw.), aber ich glaube darauf wolltest du nicht hinaus, oder doch?

Ansonsten würde eine Lösung wie TrueCrypt nicht viel bringen. Der Container wäre so lange von allen lesbar, wie er entschlüsselt ist. Zudem müsstest du TrueCrypt um einen Schreib-Queue erweitern um den parallelen Schreibzugriff von mehreren Personen bewerkstelligen zu können.

Was vielleicht in diese Richtung geht wäre eine VPN-Lösung mit LANCrypt (leider nur für Windows). Wir setzen das in beschränktem Umfang so in unserer Firma ein.
 
Danke für die schnelle Antwort.
Klar stellen viele Unternehmen ihre sensiblen Daten auf einen eigenen Server. Aber manche mussten aus Kapazitätsgründen und anderen diversen Gründen auf externe Webhoster umsteigen. Ebenso sind auch kostenlose Webhoster sehr verführerisch, was z.B. Testumgebungen betriff, oder "halb-öffentliche" Daten für z.B. Werbemaßnahmen.

Aber das mit den Unternehmen war vielmehr ein Beispiel. Man kann ebenso einen Privatnutzer als Beispiel nehmen, der seine eigene Webseite nur einen bestimmten Kreis von Benutzern zur Verfügung stellen will.

Hauptsächlich geht es mir aber um die Verschlüsselung der Webseite und deren Datenbank - wie beschrieben, so das nicht einmal der Webhoster selbst mit lokalen Vollzugriff etwas mit den Daten anfangen kann.

VPN hilft mir da nicht viel, denn es verschlüsselt eher die Daten in der "Verbindung", nicht die Daten direkt auf den Server.

Das TrueCrypt nicht viel bringt ist mir klar, es hatte eher als beispielhaftes Vorbild gedient. Eine Art Container kann ich ja schlecht erstellen oder verwenden, wenn die Dateiverwaltung auf "Webseiteebene" und einpaar FTP-Befehlen beschränkt ist.

Es geht hier also vielmehr um ein Script, womit man Datenbank und Webseite in Echtzeit verschlüsseln und entschlüsseln kann.
 
Ich würde mal sagen, dass derart sensible Daten bei einer Firma oder Privatperson, die nicht mal die vielleicht 50 Euro monatlich für einen eigenen Rootserver aufbringen kann, falsch aufgehoben sind...

Ansonsten ist das sicherheitstechnisch recht aussichtslos. Wenn man so paranoid ist zu glauben, dass ein Webhoster in seinen Kundendaten rumschnüffelt, muss man konsequenter Weise auch davon ausgehen, dass der Netzwerktraffic mitgeloggt wird. Die Eingabe des Secrets zur Entschlüsselung von Website und Datenbank wäre damit dann auch erst dann sicher, wenn man über SSL geht. Wenn's der Hoster aber drauf anlegt, könnte er auch das SSL-Zertifikat kopieren, den Verkehrt auf einen anderen Host routen und so eingegebene Passworte mitschnüffeln.

Kurzum: Sobald Fremde Vollzugriff sowohl auf Server als auch auf Netzwerkinfrastruktur haben, sind die Daten niemals "sicher".
 
Ebenso sind auch kostenlose Webhoster sehr verführerisch, was z.B. Testumgebungen betriff
Ich kenne kein Unternehmen, was dadrauf ernsthaft zurückgreifen würde, auch nicht für Testumgebungen.
Webspace kostet heute nur noch 'n Appel und 'n Ei, so dass man keinen kostenloser Webhoster benötigen.
(Gute) Pakete fangen schon bei 20 Euro im Jahr an. Das ist für ein Unternehmen, sei es noch so klein, echt lächerlich.

Ansonsten:
Wer die Maschine kontrolliert, kontrolliert auch was darauf passiert. Verschlüsselung ist dann nutzlos.
Wenn ich einen Trojaner auf einem PC installiere, hilft es mir nicht das meine Daten per Truecrypt verschlüsselt sind. Der Trojaner kann die Passworteingabe auslesen oder die Daten kopieren wenn der Container geöffnet ist.

Die Daten serverseitig zu entschlüsseln bevor sie an den Anwender gesendet werden funktioniert aus offensichtlichen Gründen nicht.
Also müssten die Daten an den Anwender verschlüsselt gesendet werden und dort erst entschlüsselt werden.
Die erste Idee wäre mittels JavaScript, welches den User nach dem PW fragt und dann die Daten entschlüsselt. Dies würde gehen, auch wenn JS recht langsam ist.
Aber: Der Webhoster könnte das JS unauffällig manipulieren bevor es an den Empfänger gesendet wird, so dass der Script das Passwort an den Hoster sendet.

Was also nur bleibt, ist einen eigenen Client zu programmieren und diesen direkt an die Mitarbeiter auszuteilen. Dieser Client holt sich dann den verschlüsselten Inhalt von dem Webhoster und entschlüsselt diesen.
Von einer Website kann dann aber nicht mehr die Rede sein, da die mit keinem normalen Browser mehr aufgerufen werden kann.
Das wäre dann eine normale Server-Client-Applikation.
 
  • Like
Reactions: LX
Danke für die Antworten.
Elderan kommt der Sachse schon näher.

Was Java-Script angeht, habe ich auch so meine Zweifel was eine gute Sicherheit angeht.

Eher hatte ich es mir so gedacht, das Jemand (von Seiten des Clients) in die Datenbank einen verschlüsselten Wert einträgt. Ein Beispiel für einen Datensatz der Tabelle Kunden:

ID: 1; Name: Müller; Vorname: Klaus; Geheime Info: a3uC8)w%uja0R/

Die geheime Info ist nun der verschlüsselte Wert. Nun listet man sich z.B. per PHP die Kunden auf und sieht als geheime Info nur den verschlüsselten Wert: a3uC8)w%uja0R/. Entschlüsselt könnte es vielleicht heißen: "Der Kunde ist nicht mehr tragbar."

Nun sollte das aber mehr anwenderfreundlicher sein, denn wenn über 100 Kunden aufgelistet werden muss der Anwender ja bei jeden Kunden einzeln die geheime Info Markieren - Kopieren und in einem clientseitigen Entschlüsselungsprogramm einfügen.

Besser wäre es ja, wenn die Daten gleich im Browser entschlüsselt werden - also automatisch. Z.B. mittels eines Browserplugin. Dieses muss dann die zu entschlüsselte Daten automatisch erkennen, nicht das es dann z.B. versucht Müller zu entschlüsseln. Dies könnte vielleicht durch Markierungen funktionieren. Also das der "Code": a3uC8) immer am Anfang eines zu entschlüsselten Wertes ist. Dann ist der letzte, individuelle Teil zu entschlüsseln, im Beispiel also: w%uja0R/
Oder man gibt den Feldern einen Namen, also mittels CSS oder in HTML den Ankern, was mir gerade spontan einfällt. (http://de.selfhtml.org/html/verweise/projektintern.htm).

Man könnte vielleicht auch einen eigenen Browser nehmen oder einen seperaten Client, der nur die Daten "Kunden" in einer integrierten Tabelle ausspuckt und den zu entschlüsselten Wert auch besser erkennen kann. Aber das wäre dann wieder umständliche Programmierarbeit und das Client-Programm wäre vielleicht nicht so felxibel, wenn neue Tabellen genutzt werden müssen.

Vielleicht kennt ihr ja Programme oder Plugins, die Werte im Browser erkennen/herausfiltern können und sie clientseitig verarbeiten können. So das im Browser die Werte gleich entschlüsselt dargestellt werden.
 
Hallo,
na sicherlich ließe sich da ein Plugin für Firefox schreiben. Einfach die entsprechenden Bereiche per <encrypted_part>ja342asdsdf%</encrypted_part> markieren und diese dann im Plugin herausfinden und entschlüsseln.

Ein solches Plugin wäre mir aber nicht bekannt (da nur sehr kleiner Nutzerkreis), womit die Aufgabe dann bei dir hängen bleiben würde.
 
Man könnte das auch mit JS lösen, dafür muss halt die JS-Datei an eine bestimmte stelle oder über die DB einstellbare stelle liegen ("C:\geheim.js"). Wirklich sicher ist es aber trotzdem nicht und ganz ehrlich eine Firma in der ich meine Testumgebung auf irgend einen kostenlosen Webspace habe, hätten schneller meine Kündigung in der Hand als mein Vorgesetzer mir den Acc eingerichtet hat.

Wenn man davon ausgehen sollte das n,- € zu viel Geld sind warum wird nicht Lokal entwickelt - hier kann man wenigstens an den Configs schrauben usw. und für andere über VPN zugreifbar machen. Auf Live-Seiten gehören sowieso keine ("geheime") Firmenunterlagen.
 
Zurück
Oben