Impressum · Kontakt · Hilfe
Besucher online · Mitglieder



Antwort
 
Themen-Optionen
Alt 21.05.2007, 22:08   Nach oben    #1
bobby
Benutzer
 
Benutzerbild von bobby
 
Registriert seit: 09.03.2007
Ort: Nürnberg
Beiträge: 56
Standard Speicherung von unternehmenskritischen Daten

Nabend,

nun ist es so weit und ich muss mich mit der Speicherung von unternehmenskritischen Daten beschäftigen (bei mir handelt es sich z.B.: um eine Kunden- und Lieferantendatenbank).

1. Die Speicherung

Die Daten müssen ja irgendwie verschlüsselt werden, ich dachte an eine symmetrische Verschlüsselung (Blowfish, whatever) mit einem im System hinterlegten Key. Wie würdet ihr das anpacken?

2. Der Zugriff

Nachdem nun die Daten (hoffentlich) sicher verstaut sind, stellt sich die Frage des Zugriffs. Das System soll modular gehalten sein, d.h. auch Module von anderen Herstellern.

Nun kann ich ja ein Proxyobjekt, das den Zugriff zwischen der Datenbank und dem Modul kontolliert, schalten, aber andere Module könnten einfach an dem Objekt vorbei auf die Daten zugreifen.

Lösungen:
  1. Den Weg über das Proxyobjekt erzwingen (Wie? Ich könnte mir vorstellen das nur das Proxyobjekt auf den Key Zugriff hat)
  2. Einen Weg über eine C-Erweiterung (Schön wäre es, alles auf PHP-Ebene zu lösen)
  3. Hardwarelösung (Nein)
  4. Module verifizieren (Nein)
Am liebsten wäre mir eine Art Jailumgebung für die Module, aber mir kommen gerade keine Ideen, wie man sowas in PHP umsetzen könnte.

Ich bin dankbar für jede Idee und jeden Vorschlag.

bobby.
bobby ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 22.05.2007, 09:40   Nach oben    #2
xabbuh
Benutzer
 
Benutzerbild von xabbuh
 
Registriert seit: 03.12.2005
Ort: Osnabrück
Beiträge: 74
Standard

Hallo,

Zitat:
Zitat von bobby Beitrag anzeigen
1. Die Speicherung

Die Daten müssen ja irgendwie verschlüsselt werden, ich dachte an eine symmetrische Verschlüsselung (Blowfish, whatever) mit einem im System hinterlegten Key. Wie würdet ihr das anpacken?
hier stellt sich die Frage, ob es nicht ausreichend wäre, das darunter liegende Dateisystem zu verschlüsseln. Dann wäre ein lokaler Zugriff erst einmal stark erschwert.

Zitat:
Zitat von bobby
2. Der Zugriff

Nachdem nun die Daten (hoffentlich) sicher verstaut sind, stellt sich die Frage des Zugriffs. Das System soll modular gehalten sein, d.h. auch Module von anderen Herstellern.

Nun kann ich ja ein Proxyobjekt, das den Zugriff zwischen der Datenbank und dem Modul kontolliert, schalten, aber andere Module könnten einfach an dem Objekt vorbei auf die Daten zugreifen.
Verstehe ich nicht. Wie soll denn ein anderes Objekt an dir deinem Proxy-Objekt vorbei auf die Daten zugreifen, wenn es nicht weiß, wie es dies tun müsste (beispielsweise da keine Zugangsdaten zur Datenbank bekannt sind)?

Gruß
Christian
xabbuh ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 22.05.2007, 11:25   Nach oben    #3
JumperII
Erfahrener Benutzer
 
Benutzerbild von JumperII
 
Registriert seit: 27.02.2006
Beiträge: 146
Standard

Hallo,

Zitat:
Zitat von bobby Beitrag anzeigen
1. Die Speicherung

Die Daten müssen ja irgendwie verschlüsselt werden, ich dachte an eine symmetrische Verschlüsselung (Blowfish, whatever) mit einem im System hinterlegten Key. Wie würdet ihr das anpacken?
Öhmm ... ja? Grundsätzlich .... wenn ich direkten Zugriff auf die Daten/Datenbanken bekomme, dann bekomme ich auch direkten Zugriff auf den dort hinterlegten Schlüssel. Ein im System hinterlegter Schlüssel ist per se ungeeignet für den Datenschutz hinterlegter Dateien.

Anders sieht es aus, wenn Du verteilte, miteinander kommunizierende Systeme hast. Um den Datenaustausch zu sichern gegen abhören und modifizieren, macht es Sinn, eine Verschlüsselte Kommunikation zu verwenden. Die simpelste Form davon wäre HTTPS/SSL. Besser dabei - so denn die Komponenten es zulassen - wäre eine Public/Private Key-Architektur, bei der natürlich der jeweils zugehörige Private Key lokal auf der jeweiligen Maschine hinterlegt wird. Vergleichbares gilt im Übrigen auch mit der Client-Kommunikation (Stichwort Client-Zertifikat).

Darüber hinaus sind die Systeme grundsätzlich zu sichern. Dies gilt sowohl physisch als auch netzwerktechnisch. Eine lokale Verschlüsselung ist maximal ein Schutz gegen sporadisch entnommene Daten (physischer Zugang erforderlich). Bei einer systematischen Entnahme kann der Zugriff auch durch Auslesen der Keys erfolgen. Hier hilft nur noch Hardware-Verschlüsselung ... entweder direkt zur Festplatte oder per Software mit TPM als Keystore.

Als nächsten Schritt ist das Backup grundsätzlich verschlüsselt durchzuführen!!!! Hier führt kein Weg daran vorbei.

Zitat:
Zitat von bobby Beitrag anzeigen
2. Der Zugriff

Nachdem nun die Daten (hoffentlich) sicher verstaut sind, stellt sich die Frage des Zugriffs. Das System soll modular gehalten sein, d.h. auch Module von anderen Herstellern.

Nun kann ich ja ein Proxyobjekt, das den Zugriff zwischen der Datenbank und dem Modul kontolliert, schalten, aber andere Module könnten einfach an dem Objekt vorbei auf die Daten zugreifen.

Lösungen:
  1. Den Weg über das Proxyobjekt erzwingen (Wie? Ich könnte mir vorstellen das nur das Proxyobjekt auf den Key Zugriff hat)
  2. Einen Weg über eine C-Erweiterung (Schön wäre es, alles auf PHP-Ebene zu lösen)
  3. Hardwarelösung (Nein)
  4. Module verifizieren (Nein)
Am liebsten wäre mir eine Art Jailumgebung für die Module, aber mir kommen gerade keine Ideen, wie man sowas in PHP umsetzen könnte.
Aus meiner Sicht sollte in diesem Fall die Datenbank mit entsprechenden Views und zugehörigen Rechten versehen werden. Dies stellt sicher, das die jeweilige Anwendung/das Modul nur das sieht, was sie laut Benutzerrecht sehen darf. Dies erhöht zwar den generellen Aufwand, sichert aber zuverlässig den Zugriff. Bei erhöhten Sicherheitsanforderungen ist aber sowieso der Aufwand höher.

Was mir fehlt, ist ein Sicherheitsaudit zu den Daten.

Und ich bin der Meinung, wenn dass mit einer Datenbank abgehandelt werden soll, MySQL ist der falsche Partner. Ich sehe da eher Oracle ... sorry.

Gruß,
Jumper, the II.

Geändert von JumperII (22.05.2007 um 11:27 Uhr).
JumperII ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 22.05.2007, 21:30   Nach oben    #4
Ben
Erfahrener Benutzer
 
Benutzerbild von Ben
 
Registriert seit: 02.12.2004
Ort: Remagen
Beiträge: 4.619
Standard

Hallo,
ich habe von diesem Thema an sich keine Ahnung und demnach folgt nun auch keine Hilfe, sondern eine Frage.

MySQL wirbt mit diesem Text für den Einsatz der Datenbank
Zitat:
6. Zuverlässiger Datenschutz

Die wichtigste Aufgabe eines Datenbankexperten ist der Schutz von Datenbeständen des Unternehmens. MySQL bietet daher außergewöhnliche Sicherheits-Funktionalitäten, die für einen uneingeschränkten Datenschutz sorgen. In Hinsicht auf die Datenbank-Authorisierung stellt MySQL ein leistungsfähiges Instrument zur Verfügung, das dafür sorgt, daß ausschließlich berechtigte Nutzer Zugang auf den Datenbank-Server erhalten. Diese Authorisierungen können bis zum Client-Rechner heruntergebrochen werden. Auch SSH- und SSL-Unterstützung ist gewährleistet, um zuverlässige und sichere Verbindungen zu garantieren. Ein granulares System für Zugriffsrechte auf Objektebene sorgt dafür, daß Nutzer nur die für sie bestimmten Daten sehen können. Leistungsfähige Funktionalitäten zur Datenver- und -entschlüsselung stellen sicher, daß sensible Daten vor unberechtigtem Zugriff geschützt sind. Schlußendlich stellen MySQL und Drittanbieter Sicherungs- und Wiederherstellungsinstrumente zur Verfügung, die eine vollständige logische und physikalische Sicherung sowie die zeitgenaue Wiederherstellung erlauben.
Quelle: http://www.mysql.de/why-mysql/topreasons.html

Was ist denn dann damit gemeint?
Hier die Funktionen oder wie?
Danke.
Ben ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 23.05.2007, 07:47   Nach oben    #5
JumperII
Erfahrener Benutzer
 
Benutzerbild von JumperII
 
Registriert seit: 27.02.2006
Beiträge: 146
Standard

Hallo Ben,

ich würde es begrüßen, wenn Du genau sagst, was Du an meiner Aussage zu bemängeln hast. So kann ich nur raten und vermuten, dass Dich "meine Meinung" stört, für hochsensible Daten eben nicht MySQL sondern eher Oracle zu verwenden. Wenn es denn so ist:

1. Es ist meine Meinung.
2. Es fusst auf Erfahrungen, die ich gemacht habe.

Wenn es um die verschlüsselte Ablage geht:

Mit dem Zugriff auf die physischen Dateien von MySQL werde ich typischerweise auch den physischen Zugang zu den PHP Kode-Teilen haben. Damit kann ich mir die entsprechenden Berechtigungen auslesen. Um dies zu unterbinden, müsste für jeden Nutzer ein eigenes Nutzerkonto auf der Datenbank eingerichtet werden, so dass der Nutzer durch sein Login und sein Passwort den Zugang zur Datenbank freischaltet. Dieses Verfahren wäre das sicherste, aber hochgradig störanfällig, da die Rechteverteilung letztendlich sehr komplex wird. Außerdem sind Zugriffsberechtigungen nur auf Table/View herunter brechbar. Sobald aber Zugangsinformationen auf dem Server gespeichert werden müssen, ist der Server ansich zu sichern!

Die von MySQL angegebene Aussage ist somit Augenauswischerei. Die Funktionen stellen sicher, dass ein bloses Lesen der physischen Dateien einer Datenbank eben nicht ausreicht, Informationen auszulesen. Somit könnte man es mit einer per JS verschlüsselten HTML-Seite vergleichen. Wenn man das JS entsprechend anwendet, erhält man die eigentliche Seite. Einziger Vorteil bei MySQL .... der Code wird nur bedingt mitgeliefert und hängt in Teilen auch von außen gelieferten Informationen ab. Im Vergleich zur HTML Seite -> Wenn der Inhalt dann in der Sprache der Inkas verfasst wäre, ist trotz Entschlüsselung der Seite der Inhalt noch immer nicht erschließbar. Erst wenn das zugehörige Wörterbuch vorliegt (bei MySQL dann der PHP Code zur Einspeisung/Ausgabe der Daten) ist auch der Inhalt verfügbar.

Ich hoffe, meine Aussage erschließt sich jetzt besser

Gruß,
Jumper, the II.
JumperII ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 23.05.2007, 08:33   Nach oben    #6
Ben
Erfahrener Benutzer
 
Benutzerbild von Ben
 
Registriert seit: 02.12.2004
Ort: Remagen
Beiträge: 4.619
Standard

Jau, das hab ich nu soweit verstanden. Danke.


*Thread verschoben*
Ben ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist An.
Smileys sind An.
[IMG] Code ist An.
HTML-Code ist Aus.
Trackbacks are An
Pingbacks are An
Refbacks are Aus

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Hardware-RAID-Lösung robo47 Plauderecke 29 26.12.2007 04:49
[JAVA] Wie man aus Java mit einem PHP-Script kommuniziert sparrow Tutorials 0 25.03.2006 22:24
daten in array eintragen und auslesen zerberos Allgemeine Java-Programmierung 15 20.02.2005 21:49
[PHP] Wie übergebe ich Daten per URL? Ben Tutorials 0 05.12.2004 14:36


Alle Zeitangaben in WEZ +2. Es ist jetzt 17:46 Uhr.

Nach oben
Wir nutzen das Zend Framework, vBulletin (vBulletin v3.7.3, Copyright ©2000-2008, Jelsoft Enterprises Ltd.
SEO by vBSEO 3.0.0) und vBSEO.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44